#include <senf/Ext/NetEmu/WLAN/WirelessNLController.hh>

Classes

struct  ChannelMode
 
struct  DFSState
 
struct  IfaceType
 
struct  MonitorFlags
 
class  NetlinkEvent
 
struct  ScanResults
 
struct  Survey
 
struct  TxPowerSetting
 

Public Types

enum  Band_t { BAND_2GHZ = NL80211_BAND_2GHZ, BAND_5GHZ = NL80211_BAND_5GHZ }
 
typedef unsigned bitrate_type
 
typedef unsigned frequency_type
 
typedef boost::iterator_range< Frequencies_iterator > FrequencyRange
 
typedef boost::function< int(nl_msg *)> NetlinkMsgCallback
 
typedef std::set< std::string > IfaceNameSet
 

Public Member Functions

 WirelessNLController (bool disableSeqNoCheck=true)
 
 WirelessNLController (std::string const &interface)
 
JoinParameters::ptr ibss_join (std::string const &ssid, frequency_type freq, ChannelMode::Enum channelMode, bool &success)
 
void ibss_leave ()
 
JoinParameters::ptr mesh_join (std::string const &meshId, frequency_type freq, ChannelMode::Enum channelMode, bool &success)
 
void mesh_leave ()
 
void set_frequency (frequency_type freq, ChannelMode::Enum=ChannelMode::NoHT20)
 
void set_txpower (TxPowerSetting::Enum setting, unsigned int mBm)
 
void add_monInterface (std::string const &name, int flags=MonitorFlags::None)
 
void add_adhocInterface (std::string const &name)
 
void add_apInterface (std::string const &name)
 
void add_meshInterface (std::string const &name, std::string const &meshId="")
 
void del_interface (std::string const &name)
 
void set_retryLimit (boost::uint8_t shortLimit, boost::uint8_t longLimit)
 
void set_txQueueParameters (boost::uint8_t queue, boost::uint16_t cwMin, boost::uint16_t cwMax, boost::uint8_t aifs, boost::uint16_t txop)
 
std::pair< DFSState::Enum, std::uint32_t > dfsState (frequency_type freq)
 
void start_radarDetection (unsigned int freq, ChannelMode::Enum=ChannelMode::NoHT20)
 
template<typename ForwardReadableRange >
void trigger_scan (ForwardReadableRange const &frequencies)
 
void do_trigger_scan (std::set< frequency_type > const &frequencies, std::set< std::string > const &ssids={})
 
void set_regulatory_request (std::string const &alpha2Country)
 
void set_regulatory (RegulatoryDomain const &regDomain)
 
RegulatoryDomain get_regulatory ()
 
void coverageClass (unsigned coverage)
 
unsigned coverageClass ()
 
bool hasHTCapabilities ()
 
HTCapabilitiesInfo const & htCapabilities ()
 
bool hasVHTCapabilities ()
 
VHTCapabilitiesInfo const & vhtCapabilities ()
 
IfaceNameSet all_interfaces () const
 
std::string const & phyName () const
 
int phyIndex () const
 
std::multiset< ScanResults > const & getScan ()
 
std::set< Survey > const & survey ()
 
frequency_type frequency ()
 
FrequencyRange frequencies ()
 
FrequencyRange frequencies (Band_t band)
 
void set_bitrates (BitrateParameters parameters)
 
BitrateParameters const & bitrates ()
 Return valid bitrates. More...
 
IfaceType::Enum type ()
 
void type (IfaceType::Enum)
 
std::set< Band_t > const & supportedBands ()
 

Static Public Member Functions

static unsigned distanceToCoverageClass (unsigned distance)
 
static int if_nameto_phy_index (std::string const &ifname)
 
static std::string if_nameto_phy_name (std::string const &ifname)
 
static int phy_nametoindex (std::string const &phyname)
 
static std::string macToPhy (senf::MACAddress const &mac)
 
static int channelWidth (ChannelMode::Enum channelMode)
 
static int channelType (ChannelMode::Enum channelMode)
 
static frequency_type centerFreq (frequency_type freq, ChannelMode::Enum channelMode)
 

Public Attributes

NetlinkEvent< RadarEventradarEvent
 
NetlinkEvent< RegulatoryDomainChangeEventregulatoryDomainChangeEvent
 
NetlinkEvent< ScanEventscanEvent
 

Detailed Description

Definition at line 184 of file WirelessNLController.hh.

Member Typedef Documentation

◆ bitrate_type

Definition at line 233 of file WirelessNLController.hh.

◆ frequency_type

Definition at line 234 of file WirelessNLController.hh.

◆ FrequencyRange

typedef boost::iterator_range<Frequencies_iterator> senf::emu::WirelessNLController::FrequencyRange

Definition at line 359 of file WirelessNLController.hh.

◆ IfaceNameSet

Definition at line 406 of file WirelessNLController.hh.

◆ NetlinkMsgCallback

typedef boost::function<int (nl_msg *)> senf::emu::WirelessNLController::NetlinkMsgCallback

Definition at line 360 of file WirelessNLController.hh.

Member Enumeration Documentation

◆ Band_t

Enumerator
BAND_2GHZ 
BAND_5GHZ 

Definition at line 228 of file WirelessNLController.hh.

Constructor & Destructor Documentation

◆ WirelessNLController() [1/2]

senf::emu::WirelessNLController::WirelessNLController ( bool  disableSeqNoCheck = true)

Definition at line 194 of file WirelessNLController.cc.

◆ WirelessNLController() [2/2]

senf::emu::WirelessNLController::WirelessNLController ( std::string const &  interface)

Definition at line 174 of file WirelessNLController.cc.

Member Function Documentation

◆ add_adhocInterface()

void senf::emu::WirelessNLController::add_adhocInterface ( std::string const &  name)

Definition at line 1002 of file WirelessNLController.cc.

◆ add_apInterface()

void senf::emu::WirelessNLController::add_apInterface ( std::string const &  name)

Definition at line 1012 of file WirelessNLController.cc.

◆ add_meshInterface()

void senf::emu::WirelessNLController::add_meshInterface ( std::string const &  name,
std::string const &  meshId = "" 
)

Definition at line 1022 of file WirelessNLController.cc.

◆ add_monInterface()

void senf::emu::WirelessNLController::add_monInterface ( std::string const &  name,
int  flags = MonitorFlags::None 
)

Definition at line 986 of file WirelessNLController.cc.

◆ all_interfaces()

senf::emu::WirelessNLController::IfaceNameSet senf::emu::WirelessNLController::all_interfaces ( ) const

Definition at line 1048 of file WirelessNLController.cc.

◆ bitrates()

senf::emu::BitrateParameters const & senf::emu::WirelessNLController::bitrates ( )

Return valid bitrates.

Definition at line 546 of file WirelessNLController.cc.

◆ centerFreq()

senf::emu::WirelessNLController::frequency_type senf::emu::WirelessNLController::centerFreq ( frequency_type  freq,
ChannelMode::Enum  channelMode 
)
static

Definition at line 1217 of file WirelessNLController.cc.

◆ channelType()

int senf::emu::WirelessNLController::channelType ( ChannelMode::Enum  channelMode)
static

Definition at line 1200 of file WirelessNLController.cc.

◆ channelWidth()

int senf::emu::WirelessNLController::channelWidth ( ChannelMode::Enum  channelMode)
static

Definition at line 1184 of file WirelessNLController.cc.

◆ coverageClass() [1/2]

void senf::emu::WirelessNLController::coverageClass ( unsigned  coverage)

Definition at line 1072 of file WirelessNLController.cc.

◆ coverageClass() [2/2]

unsigned senf::emu::WirelessNLController::coverageClass ( )

Definition at line 1081 of file WirelessNLController.cc.

◆ del_interface()

void senf::emu::WirelessNLController::del_interface ( std::string const &  name)

Definition at line 1035 of file WirelessNLController.cc.

◆ dfsState()

std::pair< senf::emu::WirelessNLController::DFSState::Enum, std::uint32_t > senf::emu::WirelessNLController::dfsState ( frequency_type  freq)

Definition at line 347 of file WirelessNLController.cc.

◆ distanceToCoverageClass()

unsigned senf::emu::WirelessNLController::distanceToCoverageClass ( unsigned  distance)
static

Definition at line 1067 of file WirelessNLController.cc.

◆ do_trigger_scan()

void senf::emu::WirelessNLController::do_trigger_scan ( std::set< frequency_type > const &  frequencies,
std::set< std::string > const &  ssids = {} 
)

Definition at line 1346 of file WirelessNLController.cc.

◆ frequencies() [1/2]

senf::emu::WirelessNLController::FrequencyRange senf::emu::WirelessNLController::frequencies ( )

Definition at line 552 of file WirelessNLController.cc.

◆ frequencies() [2/2]

senf::emu::WirelessNLController::FrequencyRange senf::emu::WirelessNLController::frequencies ( Band_t  band)

Definition at line 559 of file WirelessNLController.cc.

◆ frequency()

senf::emu::WirelessNLController::frequency_type senf::emu::WirelessNLController::frequency ( )

Definition at line 891 of file WirelessNLController.cc.

◆ get_regulatory()

senf::emu::RegulatoryDomain senf::emu::WirelessNLController::get_regulatory ( )

Definition at line 435 of file WirelessNLController.cc.

◆ getScan()

std::multiset< senf::emu::WirelessNLController::ScanResults > const & senf::emu::WirelessNLController::getScan ( )

Definition at line 1369 of file WirelessNLController.cc.

◆ hasHTCapabilities()

bool senf::emu::WirelessNLController::hasHTCapabilities ( )

Definition at line 1087 of file WirelessNLController.cc.

◆ hasVHTCapabilities()

bool senf::emu::WirelessNLController::hasVHTCapabilities ( )

Definition at line 1093 of file WirelessNLController.cc.

◆ htCapabilities()

senf::emu::HTCapabilitiesInfo const & senf::emu::WirelessNLController::htCapabilities ( )

Definition at line 1099 of file WirelessNLController.cc.

◆ ibss_join()

senf::emu::WirelessNLController::IbssJoinParameters::ptr senf::emu::WirelessNLController::ibss_join ( std::string const &  ssid,
frequency_type  freq,
ChannelMode::Enum  channelMode,
bool &  success 
)

Definition at line 1304 of file WirelessNLController.cc.

◆ ibss_leave()

void senf::emu::WirelessNLController::ibss_leave ( )

Definition at line 1298 of file WirelessNLController.cc.

◆ if_nameto_phy_index()

int senf::emu::WirelessNLController::if_nameto_phy_index ( std::string const &  ifname)
static

Definition at line 1154 of file WirelessNLController.cc.

◆ if_nameto_phy_name()

std::string senf::emu::WirelessNLController::if_nameto_phy_name ( std::string const &  ifname)
static

Definition at line 1166 of file WirelessNLController.cc.

◆ macToPhy()

std::string senf::emu::WirelessNLController::macToPhy ( senf::MACAddress const &  mac)
static

Definition at line 1172 of file WirelessNLController.cc.

◆ mesh_join()

senf::emu::WirelessNLController::MeshJoinParameters::ptr senf::emu::WirelessNLController::mesh_join ( std::string const &  meshId,
frequency_type  freq,
ChannelMode::Enum  channelMode,
bool &  success 
)

Definition at line 1252 of file WirelessNLController.cc.

◆ mesh_leave()

void senf::emu::WirelessNLController::mesh_leave ( )

Definition at line 1246 of file WirelessNLController.cc.

◆ phy_nametoindex()

int senf::emu::WirelessNLController::phy_nametoindex ( std::string const &  phyname)
static

Definition at line 1160 of file WirelessNLController.cc.

◆ phyIndex()

int senf::emu::WirelessNLController::phyIndex ( ) const

Definition at line 253 of file WirelessNLController.cc.

◆ phyName()

std::string const & senf::emu::WirelessNLController::phyName ( ) const

Definition at line 259 of file WirelessNLController.cc.

◆ set_bitrates()

void senf::emu::WirelessNLController::set_bitrates ( BitrateParameters  parameters)

Definition at line 480 of file WirelessNLController.cc.

◆ set_frequency()

void senf::emu::WirelessNLController::set_frequency ( frequency_type  freq,
ChannelMode::Enum  channelMode = ChannelMode::NoHT20 
)

Definition at line 357 of file WirelessNLController.cc.

◆ set_regulatory()

void senf::emu::WirelessNLController::set_regulatory ( RegulatoryDomain const &  regDomain)

Definition at line 408 of file WirelessNLController.cc.

◆ set_regulatory_request()

void senf::emu::WirelessNLController::set_regulatory_request ( std::string const &  alpha2Country)

Definition at line 396 of file WirelessNLController.cc.

◆ set_retryLimit()

void senf::emu::WirelessNLController::set_retryLimit ( boost::uint8_t  shortLimit,
boost::uint8_t  longLimit 
)

Definition at line 377 of file WirelessNLController.cc.

◆ set_txpower()

void senf::emu::WirelessNLController::set_txpower ( TxPowerSetting::Enum  setting,
unsigned int  mBm 
)

Definition at line 366 of file WirelessNLController.cc.

◆ set_txQueueParameters()

void senf::emu::WirelessNLController::set_txQueueParameters ( boost::uint8_t  queue,
boost::uint16_t  cwMin,
boost::uint16_t  cwMax,
boost::uint8_t  aifs,
boost::uint16_t  txop 
)

Definition at line 448 of file WirelessNLController.cc.

◆ start_radarDetection()

void senf::emu::WirelessNLController::start_radarDetection ( unsigned int  freq,
ChannelMode::Enum  channelMode = ChannelMode::NoHT20 
)

Definition at line 387 of file WirelessNLController.cc.

◆ supportedBands()

std::set< senf::emu::WirelessNLController::Band_t > const & senf::emu::WirelessNLController::supportedBands ( )

Definition at line 540 of file WirelessNLController.cc.

◆ survey()

std::set< senf::emu::WirelessNLController::Survey > const & senf::emu::WirelessNLController::survey ( )

Definition at line 883 of file WirelessNLController.cc.

◆ trigger_scan()

template<typename ForwardReadableRange >
void senf::emu::WirelessNLController::trigger_scan ( ForwardReadableRange const &  frequencies)

◆ type() [1/2]

senf::emu::WirelessNLController::IfaceType::Enum senf::emu::WirelessNLController::type ( )

Definition at line 942 of file WirelessNLController.cc.

◆ type() [2/2]

void senf::emu::WirelessNLController::type ( IfaceType::Enum  type)

Definition at line 949 of file WirelessNLController.cc.

◆ vhtCapabilities()

senf::emu::VHTCapabilitiesInfo const & senf::emu::WirelessNLController::vhtCapabilities ( )

Definition at line 1105 of file WirelessNLController.cc.

Member Data Documentation

◆ radarEvent

NetlinkEvent<RadarEvent> senf::emu::WirelessNLController::radarEvent

Definition at line 449 of file WirelessNLController.hh.

◆ regulatoryDomainChangeEvent

NetlinkEvent<RegulatoryDomainChangeEvent> senf::emu::WirelessNLController::regulatoryDomainChangeEvent

Definition at line 450 of file WirelessNLController.hh.

◆ scanEvent

NetlinkEvent<ScanEvent> senf::emu::WirelessNLController::scanEvent

Definition at line 451 of file WirelessNLController.hh.


The documentation for this class was generated from the following files: