1897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang/* 2897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * Copyright (C) 2016 The Android Open Source Project 3897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * 4897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * you may not use this file except in compliance with the License. 6897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * You may obtain a copy of the License at 7897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * 8897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * http://www.apache.org/licenses/LICENSE-2.0 9897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * 10897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * Unless required by applicable law or agreed to in writing, software 11897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * distributed under the License is distributed on an "AS IS" BASIS, 12897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * See the License for the specific language governing permissions and 14897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang * limitations under the License. 15897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang */ 16897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 17897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang#ifndef WIFICOND_SCANNING_SCAN_RESULT_H_ 18897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang#define WIFICOND_SCANNING_SCAN_RESULT_H_ 19897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 20897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang#include <vector> 21897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 224d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang#include <binder/Parcel.h> 234d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang#include <binder/Parcelable.h> 244d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang 254d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wangnamespace com { 26897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wangnamespace android { 274d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wangnamespace server { 284d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wangnamespace wifi { 29897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wangnamespace wificond { 30897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 31897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang// This is the class to represent a scan result for wificond internal use. 324d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wangclass NativeScanResult : public ::android::Parcelable { 33897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang public: 344d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang NativeScanResult() = default; 354d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang NativeScanResult(std::vector<uint8_t>& ssid, 364d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang std::vector<uint8_t>& bssid, 374d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang std::vector<uint8_t>& info_element, 384d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang uint32_t frequency, 394d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang int32_t signal_mbm, 404d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang uint64_t tsf, 414d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang uint16_t capability, 424d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang bool associated); 434d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang ::android::status_t writeToParcel(::android::Parcel* parcel) const override; 444d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang ::android::status_t readFromParcel(const ::android::Parcel* parcel) override; 454d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang 46f67708e5cd726e0277240f034bbcb7d5f6fbb1bbNingyuan Wang void DebugLog(); 47897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 48897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // SSID of the BSS. 49897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang std::vector<uint8_t> ssid; 50897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // BSSID of the BSS. 51897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang std::vector<uint8_t> bssid; 52897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // Binary array containing the raw information elements from the probe 53897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // response/beacon. 54897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang std::vector<uint8_t> info_element; 55897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // Frequency in MHz. 56897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang uint32_t frequency; 57897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // Signal strength of probe response/beacon in (100 * dBm). 58897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang int32_t signal_mbm; 59897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang // TSF of the received probe response/beacon. 60897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang uint64_t tsf; 612ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // This is a bit mask describing the capabilities of a BSS. 622ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // See IEEE Std 802.11: 8.4.1.4 632ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 0 - ESS 642ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 1 - IBSS 652ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 2 - CF Pollable 662ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 3 - CF-Poll Request 672ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 4 - Privacy 682ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 5 - Short Preamble 692ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 6 - PBCC 702ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 7 - Channel Agility 712ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 8 - Spectrum Mgmt 722ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 9 - QoS 732ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 10 - Short Slot Time 742ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 11 - APSD 752ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 12 - Radio Measurement 762ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 13 - DSSS-OFDM 772ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 14 - Delayed Block Ack 782ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang // Bit 15 - Immediate Block Ack 792ad166afd1c3a4c52cc2575d2cc03ee01ee8e0f6Ningyuan Wang uint16_t capability; 804d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang bool associated; 81897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang}; 82897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 83897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang} // namespace wificond 844d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang} // namespace wifi 854d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang} // namespace server 86897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang} // namespace android 874d882abea2a9956689d32820a5c13e9f9625e0daNingyuan Wang} // namespace com 88897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang 89897fa18fbbebceb3239f0bc18f771da1cae6772aNingyuan Wang#endif // WIFICOND_SCANNING_SCAN_RESULT_H_ 90