Revert "Use new netlink attribute for scan result timestamp"
This reverts commit 74db77ecd5314fa28ac2b78ccc3ca18788eeef60.
Bug: 62818212
Bug: 37758502
Change-Id: Icd93d4caffab92a5bf79c8d6aa8fe4dceca3ec06
diff --git a/scanning/scan_utils.cpp b/scanning/scan_utils.cpp
index 42c55b2..5199e2b 100644
--- a/scanning/scan_utils.cpp
+++ b/scanning/scan_utils.cpp
@@ -151,11 +151,17 @@
// These scan results are considered as malformed.
return false;
}
- uint64_t last_seen_since_boot;
- if (!GetBssTimestamp(bss, &last_seen_since_boot)) {
- // Logging is done inside |GetBssTimestamp|.
+ uint64_t tsf;
+ if (!bss.GetAttributeValue(NL80211_BSS_TSF, &tsf)) {
+ LOG(ERROR) << "Failed to get TSF from scan result packet";
return false;
}
+ uint64_t beacon_tsf;
+ if (bss.GetAttributeValue(NL80211_BSS_BEACON_TSF, &beacon_tsf)) {
+ if (beacon_tsf > tsf) {
+ tsf = beacon_tsf;
+ }
+ }
int32_t signal;
if (!bss.GetAttributeValue(NL80211_BSS_SIGNAL_MBM, &signal)) {
LOG(ERROR) << "Failed to get Signal Strength from scan result packet";
@@ -175,26 +181,7 @@
}
*scan_result =
- NativeScanResult(ssid, bssid, ie, freq, signal,
- last_seen_since_boot, capability, associated);
- }
- return true;
-}
-
-bool ScanUtils::GetBssTimestamp(const NL80211NestedAttr& bss,
- uint64_t* last_seen_since_boot){
- if (!bss.GetAttributeValue(NL80211_BSS_LAST_SEEN_BOOTTIME,
- last_seen_since_boot)) {
- // Fall back to use TSF if we can't find NL80211_BSS_LAST_SEEN_BOOTTIME
- // attribute.
- if (!bss.GetAttributeValue(NL80211_BSS_TSF, last_seen_since_boot)) {
- LOG(ERROR) << "Failed to get TSF from scan result packet";
- return false;
- }
- uint64_t beacon_tsf;
- if (bss.GetAttributeValue(NL80211_BSS_BEACON_TSF, &beacon_tsf)) {
- *last_seen_since_boot = std::max(*last_seen_since_boot, beacon_tsf);
- }
+ NativeScanResult(ssid, bssid, ie, freq, signal, tsf, capability, associated);
}
return true;
}
diff --git a/scanning/scan_utils.h b/scanning/scan_utils.h
index dc3768e..84baeec 100644
--- a/scanning/scan_utils.h
+++ b/scanning/scan_utils.h
@@ -42,7 +42,6 @@
namespace wificond {
class NL80211Packet;
-class NL80211NestedAttr;
// Provides scanning helper functions.
class ScanUtils {
@@ -137,12 +136,6 @@
// interface with index |interface_index|.
virtual void UnsubscribeSchedScanResultNotification(uint32_t interface_index);
- // Visible for testing.
- // Get a timestamp for the scan result |bss| represents.
- // This timestamp records the time passed since boot when last time the
- // AP was seen.
- virtual bool GetBssTimestamp(const NL80211NestedAttr& bss,
- uint64_t* last_seen_since_boot);
private:
bool GetSSIDFromInfoElement(const std::vector<uint8_t>& ie,
std::vector<uint8_t>* ssid);
diff --git a/tests/scan_utils_unittest.cpp b/tests/scan_utils_unittest.cpp
index 33ca4f8..3dbfe21 100644
--- a/tests/scan_utils_unittest.cpp
+++ b/tests/scan_utils_unittest.cpp
@@ -176,41 +176,5 @@
kFakeRssiThreshold, kFakeUseRandomMAC, {}, {}, {}));
}
-TEST_F(ScanUtilsTest, CanPrioritizeLastSeenSinceBootNetlinkAttribute) {
- constexpr uint64_t kLastSeenTimestamp = 123456;
- constexpr uint64_t kBssTsfTimestamp = 654321;
- NL80211NestedAttr bss(NL80211_ATTR_BSS);
- bss.AddAttribute(
- NL80211Attr<uint64_t>(NL80211_BSS_LAST_SEEN_BOOTTIME, kLastSeenTimestamp));
- bss.AddAttribute(
- NL80211Attr<uint64_t>(NL80211_BSS_TSF, kBssTsfTimestamp));
- uint64_t timestamp;
- EXPECT_TRUE(scan_utils_.GetBssTimestamp(bss, ×tamp));
- EXPECT_EQ(kLastSeenTimestamp, timestamp);
-}
-
-TEST_F(ScanUtilsTest, CanHandleMissingLastSeenSinceBootNetlinkAttribute) {
- constexpr uint64_t kBssTsfTimestamp = 654321;
- NL80211NestedAttr bss(NL80211_ATTR_BSS);
- bss.AddAttribute(
- NL80211Attr<uint64_t>(NL80211_BSS_TSF, kBssTsfTimestamp));
- uint64_t timestamp;
- EXPECT_TRUE(scan_utils_.GetBssTimestamp(bss, ×tamp));
- EXPECT_EQ(kBssTsfTimestamp, timestamp);
-}
-
-TEST_F(ScanUtilsTest, CanPickMostRecentTimestampBetweenBetweenProbeAndBeacon) {
- constexpr uint64_t kBssBeaconTsfTimestamp = 654321;
- constexpr uint64_t kBssTsfTimestamp = kBssBeaconTsfTimestamp + 2000;
- NL80211NestedAttr bss(NL80211_ATTR_BSS);
- bss.AddAttribute(
- NL80211Attr<uint64_t>(NL80211_BSS_BEACON_TSF, kBssBeaconTsfTimestamp));
- bss.AddAttribute(
- NL80211Attr<uint64_t>(NL80211_BSS_TSF, kBssTsfTimestamp));
- uint64_t timestamp;
- EXPECT_TRUE(scan_utils_.GetBssTimestamp(bss, ×tamp));
- EXPECT_EQ(kBssTsfTimestamp, timestamp);
-}
-
} // namespace wificond
} // namespace android