17 #ifndef HH_SENF_Ext_NetEmu_WLAN_HardwareWLANInterface_ 18 #define HH_SENF_Ext_NetEmu_WLAN_HardwareWLANInterface_ 1 43 :
private detail::HardwareWLANInterfaceNet,
57 std::string
const &
v_device()
const override;
69 WirelessNLController::IbssJoinParameters::ptrI
joinAdhoc(std::string
const &
ssid,
unsigned int freq,
unsigned int bandwidth,
bool & success);
70 WirelessNLController::MeshJoinParameters::ptrM
joinMesh(std::string
const & meshId,
unsigned int freq,
unsigned int bandwidth,
bool & success);
90 void sndBuf(
unsigned sndbuf);
92 void rcvBuf(
unsigned rcvbuf);
97 unsigned qlen()
const;
98 void qlen(
unsigned qlen);
100 std::pair<unsigned,unsigned>
rxDropped();
101 std::tuple<unsigned,unsigned,unsigned>
txDropped();
111 std::pair<senf::emu::WirelessNLController::DFSState::Enum,std::uint32_t>
dfsState(
unsigned freq,
unsigned bw);
133 void getScan(std::ostream & os);
139 void modulationSet(std::set<ModulationParameter::id_t>
const & ids = {});
146 void registerFrequencies();
147 void registerModulations();
149 void registerVHTModulation(
unsigned vhtMcsIndex,
unsigned nss,
unsigned bw,
bool shortGI);
150 void registerTxPowers();
154 void close_sockets();
156 void openMonitorSocket();
157 void closeMonitorSocket();
158 void openDataSocket();
159 void closeDataSocket();
162 virtual void v_enable()
override;
163 virtual void v_disable()
override;
164 virtual bool v_enabled()
const override;
165 virtual void v_id(
MACAddress const &
id)
override;
167 virtual bool v_annotationMode()
const override;
168 virtual void v_annotationMode(
bool a)
override;
169 virtual bool v_promisc()
const override;
170 virtual void v_promisc(
bool v)
override;
171 virtual void v_mcAdd(
MACAddress const & address)
override;
172 virtual void v_mcDrop(
MACAddress const & address)
override;
173 virtual unsigned v_mtu()
const override;
174 virtual void v_mtu(
unsigned v)
override;
175 virtual void v_flushRxQueues()
override;
176 virtual void v_flushTxQueues()
override;
177 virtual void v_coverageRange(
unsigned distance)
override;
179 void do_ibss_join(WirelessNLController::JoinParameters
const & parameters);
180 void do_mesh_join(WirelessNLController::JoinParameters
const & parameters);
186 virtual unsigned v_frequency()
const override;
187 virtual unsigned v_bandwidth()
const override;
188 virtual void v_frequency(
unsigned freq,
unsigned bw)
override;
191 virtual int v_txPower()
const override;
192 virtual void v_txPower(
int power)
override;
195 std::string monitorDev_;
198 int frequencyOffset_;
204 unsigned rcvBufSize_;
205 unsigned sndBufSize_;
210 friend struct detail::HardwareWLANInterfaceNet;
HTMode::Enum htMode() const
WirelessNLController::MeshJoinParameters::ptrM joinMesh(std::string const &meshId, unsigned int freq, unsigned int bandwidth, bool &success)
config::time_type clock_type
std::pair< senf::emu::WirelessNLController::DFSState::Enum, std::uint32_t > dfsState(unsigned freq, unsigned bw)
unsigned maxBurst() const
senf::emu::WirelessNLController::NetlinkEvent< ScanEvent > & scanEvent()
VLanId const & pvid() const
void dumpMmapStats(std::ostream &os)
void setREDFilterCallbackRxMonitor(senf::ppi::REDFilterCallback const &cb)
void startCAC(unsigned int freq, unsigned int bandwidth)
std::tuple< unsigned, unsigned, unsigned > txDropped()
#define SENF_LOG_CLASS_AREA()
void frequencyHint(unsigned bandwidth)
virtual ~HardwareWLANInterface()
std::string const & monitorDevice() const
Get current monitor interface.
WirelessNLController wnlc_
WifiStatisticsMap const & statisticsMap(std::uint32_t tag, senf::ClockService::clock_type const &maxAge)
std::string const & v_device() const override
Get name of physical device.
void spectralScanStats(std::ostream &os)
MonitorDataFilterStatistics filterStats()
std::array< VHT_MCSBitmap, NL80211_VHT_NSS_MAX > VHT_MCSBitmapTable
std::function< void(std::uint64_t tsft, std::uint16_t frequency, unsigned numBins, void *spectralSample)> AthSpectralScanCallback
WirelessNLController & wirelessNLController()
std::uint32_t vlanMismatchRx()
void dumpSurvey(std::ostream &os)
void monitorDropUnknownMCS(bool q)
friend class WLANMonitorDataFilter
WirelessNLController::IbssJoinParameters::ptrI joinAdhoc(std::string const &ssid, unsigned int freq, unsigned int bandwidth, bool &success)
void triggerScan(std::ostream &os, std::set< WirelessNLController::frequency_type > const &frequencies)
std::pair< unsigned, unsigned > rxDropped()
void dumpFilterStats(std::ostream &os)
boost::unordered_map< senf::MACAddress, WifiStatisticsData > WifiStatisticsMap
void dumpWifiStatistics(std::ostream &os)
void setCellJoined(unsigned bandwidth)
senf::emu::WirelessNLController::NetlinkEvent< RadarEvent > & radarEvent()
unsigned bandwidth() const
Get current bandwidth.
void getScan(std::ostream &os)
Hardware interface base class.
void setREDFilterCallbackRx(senf::ppi::REDFilterCallback const &cb)
void setREDFilterCallbackTx(senf::ppi::REDFilterCallback const &cb)
WLANInterface public header.
int frequencyOffset() const
std::uint32_t vlanMismatchTx()
WirelessNLController public header.
Specialized Interface decorator base-class.
void spectralScanCallback()
NetdeviceController netctl_
HardwareWLANInterface(std::pair< std::string, std::string > interfaces)
TypedInterfaceDecorator< HardwareWLANInterface, WirelessInterface::Decorator > Decorator
void modulationSet(std::set< ModulationParameter::id_t > const &ids={})
FrequenciesRange frequencies() const
Get valid frequency intervals.