PicoScenes API Docs
 
Loading...
Searching...
No Matches
MAC80211CSIExtractableNIC.hxx
Go to the documentation of this file.
1//
2// Created by Zhiping Jiang on 9/18/21.
3//
4
5#ifndef PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLENIC_HXX
6#define PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLENIC_HXX
7
8
9#include "AbstractNIC.hxx"
11
21class MAC80211CSIExtractableNIC : virtual public AbstractNIC {
22
23public:
31 static std::shared_ptr<MAC80211CSIExtractableNIC> getNICInstance(const std::string &referredInterfaceName);
32
37 [[nodiscard]] const std::string &getDevId() const;
38
43 [[nodiscard]] const std::string &getMonId() const;
44
49 [[nodiscard]] uint16_t getPhyIdNumber() const;
50
55 [[nodiscard]] const std::string &getPhyPath() const;
56
61 [[nodiscard]] const std::array<uint8_t, 6> &getMacAddressMon() const;
62
67 [[nodiscard]] const std::array<uint8_t, 6> &getMacAddressDev() const;
68
73 [[nodiscard]] const std::shared_ptr<MAC80211CSIExtractableFrontEnd> &getMacFrontEnd() const;
74
75protected:
76 std::string devId;
77 std::string monId;
78 uint16_t phyIdNumber;
79 std::string phyPath;
80
85 std::shared_ptr<MAC80211CSIExtractableFrontEnd> macFrontEnd;
86
87 std::array<uint8_t, 6> macAddress_MON{};
88 std::array<uint8_t, 6> macAddress_DEV{};
89
97};
98
99
100#endif //PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLENIC_HXX
Abstract base class for Network Interface Card (NIC) operations.
std::string referredInterfaceName
Interface name reference.
Network Interface Card class with CSI extraction capabilities for MAC80211 devices.
std::shared_ptr< MAC80211CSIExtractableFrontEnd > macFrontEnd
Frontend instance for CSI operations.
const std::shared_ptr< MAC80211CSIExtractableFrontEnd > & getMacFrontEnd() const
Get the associated MAC80211 CSI-capable frontend.
uint16_t phyIdNumber
Physical interface number.
const std::array< uint8_t, 6 > & getMacAddressDev() const
Get the MAC address of the device interface.
const std::string & getDevId() const
Get the device interface identifier.
std::array< uint8_t, 6 > macAddress_MON
MAC address of monitor interface.
std::string devId
Device interface identifier.
const std::string & getPhyPath() const
Get the path to the physical interface in the system.
MAC80211CSIExtractableNIC(const std::string &referredInterfaceName)
Protected constructor for MAC80211CSIExtractableNIC.
const std::string & getMonId() const
Get the monitor interface identifier.
uint16_t getPhyIdNumber() const
Get the physical interface number.
std::string monId
Monitor interface identifier.
std::array< uint8_t, 6 > macAddress_DEV
MAC address of device interface.
const std::array< uint8_t, 6 > & getMacAddressMon() const
Get the MAC address of the monitor interface.
static std::shared_ptr< MAC80211CSIExtractableNIC > getNICInstance(const std::string &referredInterfaceName)
Get or create a NIC instance for the specified interface.
std::string phyPath
Path to physical interface in system.