Loading wifi/1.5/default/hidl_struct_util.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -1019,6 +1019,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].mpdu_lost; hidl_stats->iface.V1_0.wmeBePktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg; hidl_stats->iface.wmeBeContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples; hidl_stats->iface.V1_0.wmeBkPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu; hidl_stats->iface.V1_0.wmeBkPktStats.txMpdu = Loading @@ -1027,6 +1035,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].mpdu_lost; hidl_stats->iface.V1_0.wmeBkPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg; hidl_stats->iface.wmeBkContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples; hidl_stats->iface.V1_0.wmeViPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu; hidl_stats->iface.V1_0.wmeViPktStats.txMpdu = Loading @@ -1035,6 +1051,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].mpdu_lost; hidl_stats->iface.V1_0.wmeViPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg; hidl_stats->iface.wmeViContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples; hidl_stats->iface.V1_0.wmeVoPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu; hidl_stats->iface.V1_0.wmeVoPktStats.txMpdu = Loading @@ -1043,6 +1067,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].mpdu_lost; hidl_stats->iface.V1_0.wmeVoPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg; hidl_stats->iface.wmeVoContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples; hidl_stats->iface.timeSliceDutyCycleInPercent = legacy_stats.iface.info.time_slicing_duty_cycle_percent; // radio legacy_stats conversion. Loading wifi/1.5/default/tests/hidl_struct_util_unit_tests.cpp +56 −0 Original line number Diff line number Diff line Loading @@ -138,21 +138,41 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples = rand(); legacy_stats.iface.info.time_slicing_duty_cycle_percent = rand(); Loading Loading @@ -197,6 +217,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeBePktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries, converted.iface.V1_0.wmeBePktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min, converted.iface.wmeBeContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max, converted.iface.wmeBeContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg, converted.iface.wmeBeContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples, converted.iface.wmeBeContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu, converted.iface.V1_0.wmeBkPktStats.rxMpdu); Loading @@ -206,6 +235,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeBkPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries, converted.iface.V1_0.wmeBkPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min, converted.iface.wmeBkContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max, converted.iface.wmeBkContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg, converted.iface.wmeBkContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples, converted.iface.wmeBkContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu, converted.iface.V1_0.wmeViPktStats.rxMpdu); Loading @@ -215,6 +253,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeViPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries, converted.iface.V1_0.wmeViPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min, converted.iface.wmeViContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max, converted.iface.wmeViContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg, converted.iface.wmeViContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples, converted.iface.wmeViContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu, converted.iface.V1_0.wmeVoPktStats.rxMpdu); Loading @@ -224,6 +271,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeVoPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries, converted.iface.V1_0.wmeVoPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min, converted.iface.wmeVoContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max, converted.iface.wmeVoContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg, converted.iface.wmeVoContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples, converted.iface.wmeVoContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.info.time_slicing_duty_cycle_percent, converted.iface.timeSliceDutyCycleInPercent); Loading wifi/1.5/types.hal +47 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,33 @@ struct NanCapabilities { bool instantCommunicationModeSupportFlag; }; /** * Contention time statistics for different traffic categories. */ struct StaLinkLayerIfaceContentionTimeStats { /** * Data packet min contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeMinInUsec; /** * Data packet max contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeMaxInUsec; /** * Data packet average contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeAvgInUsec; /** * Number of data packets used for contention statistics. */ uint64_t contentionNumSamples; }; /** * Iface statistics for the current connection. */ Loading @@ -150,6 +177,26 @@ struct StaLinkLayerIfaceStats { * If not using time slicing (i.e SCC or DBS), set to 100. */ uint8_t timeSliceDutyCycleInPercent; /** * WME Best Effort (BE) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; /** * WME Background (BK) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; /** * WME Video (VI) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; /** * WME Voice (VO) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; }; /** Loading Loading
wifi/1.5/default/hidl_struct_util.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -1019,6 +1019,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].mpdu_lost; hidl_stats->iface.V1_0.wmeBePktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max; hidl_stats->iface.wmeBeContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg; hidl_stats->iface.wmeBeContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples; hidl_stats->iface.V1_0.wmeBkPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu; hidl_stats->iface.V1_0.wmeBkPktStats.txMpdu = Loading @@ -1027,6 +1035,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].mpdu_lost; hidl_stats->iface.V1_0.wmeBkPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max; hidl_stats->iface.wmeBkContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg; hidl_stats->iface.wmeBkContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples; hidl_stats->iface.V1_0.wmeViPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu; hidl_stats->iface.V1_0.wmeViPktStats.txMpdu = Loading @@ -1035,6 +1051,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].mpdu_lost; hidl_stats->iface.V1_0.wmeViPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max; hidl_stats->iface.wmeViContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg; hidl_stats->iface.wmeViContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples; hidl_stats->iface.V1_0.wmeVoPktStats.rxMpdu = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu; hidl_stats->iface.V1_0.wmeVoPktStats.txMpdu = Loading @@ -1043,6 +1067,14 @@ bool convertLegacyLinkLayerStatsToHidl( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].mpdu_lost; hidl_stats->iface.V1_0.wmeVoPktStats.retries = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeMinInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeMaxInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max; hidl_stats->iface.wmeVoContentionTimeStats.contentionTimeAvgInUsec = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg; hidl_stats->iface.wmeVoContentionTimeStats.contentionNumSamples = legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples; hidl_stats->iface.timeSliceDutyCycleInPercent = legacy_stats.iface.info.time_slicing_duty_cycle_percent; // radio legacy_stats conversion. Loading
wifi/1.5/default/tests/hidl_struct_util_unit_tests.cpp +56 −0 Original line number Diff line number Diff line Loading @@ -138,21 +138,41 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].tx_mpdu = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].mpdu_lost = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg = rand(); legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples = rand(); legacy_stats.iface.info.time_slicing_duty_cycle_percent = rand(); Loading Loading @@ -197,6 +217,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeBePktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].retries, converted.iface.V1_0.wmeBePktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_min, converted.iface.wmeBeContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_max, converted.iface.wmeBeContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_time_avg, converted.iface.wmeBeContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BE].contention_num_samples, converted.iface.wmeBeContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].rx_mpdu, converted.iface.V1_0.wmeBkPktStats.rxMpdu); Loading @@ -206,6 +235,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeBkPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].retries, converted.iface.V1_0.wmeBkPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_min, converted.iface.wmeBkContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_max, converted.iface.wmeBkContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_time_avg, converted.iface.wmeBkContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_BK].contention_num_samples, converted.iface.wmeBkContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].rx_mpdu, converted.iface.V1_0.wmeViPktStats.rxMpdu); Loading @@ -215,6 +253,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeViPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].retries, converted.iface.V1_0.wmeViPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_min, converted.iface.wmeViContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_max, converted.iface.wmeViContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_time_avg, converted.iface.wmeViContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VI].contention_num_samples, converted.iface.wmeViContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].rx_mpdu, converted.iface.V1_0.wmeVoPktStats.rxMpdu); Loading @@ -224,6 +271,15 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) { converted.iface.V1_0.wmeVoPktStats.lostMpdu); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].retries, converted.iface.V1_0.wmeVoPktStats.retries); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_min, converted.iface.wmeVoContentionTimeStats.contentionTimeMinInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_max, converted.iface.wmeVoContentionTimeStats.contentionTimeMaxInUsec); EXPECT_EQ(legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_time_avg, converted.iface.wmeVoContentionTimeStats.contentionTimeAvgInUsec); EXPECT_EQ( legacy_stats.iface.ac[legacy_hal::WIFI_AC_VO].contention_num_samples, converted.iface.wmeVoContentionTimeStats.contentionNumSamples); EXPECT_EQ(legacy_stats.iface.info.time_slicing_duty_cycle_percent, converted.iface.timeSliceDutyCycleInPercent); Loading
wifi/1.5/types.hal +47 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,33 @@ struct NanCapabilities { bool instantCommunicationModeSupportFlag; }; /** * Contention time statistics for different traffic categories. */ struct StaLinkLayerIfaceContentionTimeStats { /** * Data packet min contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeMinInUsec; /** * Data packet max contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeMaxInUsec; /** * Data packet average contention time (usec). It includes both the internal contention time * among different access categories within the chipset and the contention time for the medium. */ uint64_t contentionTimeAvgInUsec; /** * Number of data packets used for contention statistics. */ uint64_t contentionNumSamples; }; /** * Iface statistics for the current connection. */ Loading @@ -150,6 +177,26 @@ struct StaLinkLayerIfaceStats { * If not using time slicing (i.e SCC or DBS), set to 100. */ uint8_t timeSliceDutyCycleInPercent; /** * WME Best Effort (BE) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; /** * WME Background (BK) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; /** * WME Video (VI) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; /** * WME Voice (VO) Access Category (AC) contention time statistics. */ StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; }; /** Loading