95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  * Copyright (C) 2016 The Android Open Source Project
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *      http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| #ifndef WIFICOND_SCANNING_SCAN_RESULT_H_
 | |
| #define WIFICOND_SCANNING_SCAN_RESULT_H_
 | |
| 
 | |
| #include <array>
 | |
| #include <vector>
 | |
| 
 | |
| #include <linux/if_ether.h>
 | |
| 
 | |
| #include <binder/Parcel.h>
 | |
| #include <binder/Parcelable.h>
 | |
| 
 | |
| #include "wificond/scanning/radio_chain_info.h"
 | |
| 
 | |
| namespace android {
 | |
| namespace net {
 | |
| namespace wifi {
 | |
| namespace nl80211 {
 | |
| 
 | |
| // This is the class to represent a scan result for wificond internal use.
 | |
| class NativeScanResult : public ::android::Parcelable {
 | |
|  public:
 | |
|   NativeScanResult() = default;
 | |
|   NativeScanResult(std::vector<uint8_t>& ssid,
 | |
|                    std::array<uint8_t, ETH_ALEN>& bssid,
 | |
|                    std::vector<uint8_t>& info_element,
 | |
|                    uint32_t frequency,
 | |
|                    int32_t signal_mbm,
 | |
|                    uint64_t tsf,
 | |
|                    uint16_t capability,
 | |
|                    bool associated,
 | |
|                    std::vector<RadioChainInfo>& radio_chain_infos);
 | |
|   ::android::status_t writeToParcel(::android::Parcel* parcel) const override;
 | |
|   ::android::status_t readFromParcel(const ::android::Parcel* parcel) override;
 | |
| 
 | |
|   void DebugLog();
 | |
| 
 | |
|   // SSID of the BSS.
 | |
|   std::vector<uint8_t> ssid;
 | |
|   // BSSID of the BSS.
 | |
|   std::array<uint8_t, ETH_ALEN> bssid;
 | |
|   // Binary array containing the raw information elements from the probe
 | |
|   // response/beacon.
 | |
|   std::vector<uint8_t> info_element;
 | |
|   // Frequency in MHz.
 | |
|   uint32_t frequency;
 | |
|   // Signal strength of probe response/beacon in (100 * dBm).
 | |
|   int32_t signal_mbm;
 | |
|   // TSF of the received probe response/beacon.
 | |
|   uint64_t tsf;
 | |
|   // This is a bit mask describing the capabilities of a BSS.
 | |
|   // See IEEE Std 802.11: 8.4.1.4
 | |
|   // Bit 0 - ESS
 | |
|   // Bit 1 - IBSS
 | |
|   // Bit 2 - CF Pollable
 | |
|   // Bit 3 - CF-Poll Request
 | |
|   // Bit 4 - Privacy
 | |
|   // Bit 5 - Short Preamble
 | |
|   // Bit 6 - PBCC
 | |
|   // Bit 7 - Channel Agility
 | |
|   // Bit 8 - Spectrum Mgmt
 | |
|   // Bit 9 - QoS
 | |
|   // Bit 10 - Short Slot Time
 | |
|   // Bit 11 - APSD
 | |
|   // Bit 12 - Radio Measurement
 | |
|   // Bit 13 - DSSS-OFDM
 | |
|   // Bit 14 - Delayed Block Ack
 | |
|   // Bit 15 - Immediate Block Ack
 | |
|   uint16_t capability;
 | |
|   bool associated;
 | |
|   std::vector<RadioChainInfo> radio_chain_infos;
 | |
| };
 | |
| 
 | |
| }  // namespace nl80211
 | |
| }  // namespace wifi
 | |
| }  // namespace net
 | |
| }  // namespace android
 | |
| 
 | |
| #endif  // WIFICOND_SCANNING_SCAN_RESULT_H_
 |