senf::emu Namespace Reference

Namespaces

 annotations
 Predefined packet annotations.
 
 detail
 
 interface
 
 tunnel
 

Classes

struct  ApplyInterfaceDecorator
 Apply additional modules to an interface. More...
 
class  AthSpectralScan
 
struct  BitrateParameters
 
class  CRDA
 
struct  dumpPacketInfo
 Helper to log all emulated packet information. More...
 
class  DVBInterface
 
class  DVBModulationParameter
 
class  DVBModulationParameterRegistry
 
struct  DVBPacketHeaderParser
 Internal: DVB Specific emulated interface packet header. More...
 
struct  DVBPacketHeaderType
 Internal DVB Specific emulated interface packet type. More...
 
class  EmulatedDVBInterface
 
class  EmulatedDVBReceiverInterface
 Emulated DVBReceiver Interface. More...
 
class  EmulatedDVBSenderInterface
 Emulated DVBSender Interface. More...
 
class  EmulatedEthernetInterface
 Emulated Ethernet Interface. More...
 
class  EmulatedFrequencyRegistry
 Wireless spectrum management. More...
 
class  EmulatedInterface
 Emulated interface base-class. More...
 
class  EmulatedReceiver
 Emulated interface base-class for receive capable interfaces. More...
 
class  EmulatedTransmitter
 Emulated interface base-class for transmit capable interfaces. More...
 
class  EmulatedWiredInterface
 Emulated interface base-class for wired interfaces. More...
 
class  EmulatedWiredReceiver
 Emulated interface base-class for receive capable wired interfaces. More...
 
class  EmulatedWiredTransmitter
 Emulated interface base-class for transmit capable wired interfaces. More...
 
class  EmulatedWirelessInterface
 Emulated wireless interface base-class. More...
 
struct  EmulatedWirelessPacketHeaderParser
 Internal: Wireless Specific emulated interface packet header. More...
 
struct  EmulatedWirelessPacketHeaderType
 Internal Wireless Specific emulated interface packet type. More...
 
class  EmulatedWirelessReceiver
 Emulated wireless receiver base-class. More...
 
class  EmulatedWirelessTransmitter
 Emulated wireless transmitter base-class. More...
 
class  EmulatedWLANInterface
 Emulated WLAN Interface. More...
 
class  EthernetAnnotator
 
class  EthernetController
 Control ethernet interfaces. More...
 
class  EthernetFragmenter
 
class  EthernetFragmenterBase
 
class  EthernetFragmenterModule
 
struct  EthernetFragmentPacketParser
 
struct  EthernetFragmentPacketType
 
class  EthernetInterface
 
struct  EthernetPacketHeaderParser
 Internal: Ethernet Specific emulated interface packet header. More...
 
struct  EthernetPacketHeaderType
 Internal DVB Specific emulated interface packet type. More...
 
class  EthernetReassembler
 
class  EthernetReassemblerBase
 
class  EthernetReassemblerModule
 
class  ForwardSwitch
 
class  HardwareDVBInterface
 
class  HardwareDVBReceiverInterface
 
class  HardwareDVBSenderInterface
 
class  HardwareEthernetInterface
 Hardware Ethernet Interface. More...
 
class  HardwareInterface
 Hardware interface base class. More...
 
class  HardwareWLANInterface
 Hardware WLAN Interface. More...
 
struct  HTCapabilitiesInfo
 
class  Interface
 Interface API base class More...
 
class  InterfaceAPIBase
 Interface implementation base-class. More...
 
class  InterfaceAPIBase< interface::Wired, interface::Bidirectional >
 
class  InterfaceAPIBase< interface::Wired, interface::Bidirectional, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wired, interface::Bidirectional, interface::Emulated, Base >
 
class  InterfaceAPIBase< interface::Wired, interface::Bidirectional, interface::Hardware >
 
class  InterfaceAPIBase< interface::Wired, interface::ReceiveOnly, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wired, interface::ReceiveOnly, interface::Hardware >
 
class  InterfaceAPIBase< interface::Wired, interface::TransmitOnly, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wired, interface::TransmitOnly, interface::Hardware >
 
class  InterfaceAPIBase< interface::Wireless, interface::Bidirectional >
 
class  InterfaceAPIBase< interface::Wireless, interface::Bidirectional, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wireless, interface::Bidirectional, interface::Emulated, Base >
 
class  InterfaceAPIBase< interface::Wireless, interface::Bidirectional, interface::Hardware >
 
class  InterfaceAPIBase< interface::Wireless, interface::ReceiveOnly, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wireless, interface::ReceiveOnly, interface::Emulated, Base >
 
class  InterfaceAPIBase< interface::Wireless, interface::ReceiveOnly, interface::Hardware >
 
class  InterfaceAPIBase< interface::Wireless, interface::TransmitOnly, interface::Emulated >
 
class  InterfaceAPIBase< interface::Wireless, interface::TransmitOnly, interface::Emulated, Base >
 
class  InterfaceAPIBase< interface::Wireless, interface::TransmitOnly, interface::Hardware >
 
class  InterfaceDecorator
 Generic Interface decorator base-class. More...
 
class  InterfaceDecoratorImplementation
 Decorate InterfaceType with additional processing modules. More...
 
class  InterfaceDeviceId
 
class  InterfaceIdFactoryBase
 
struct  InterfaceTypes
 Emulated interface header type packet registry. More...
 
struct  ModulationParameter
 Wireless modulation parameter. More...
 
class  ModulationParameterRegistry
 
class  MonitorDataFilter
 
struct  MonitorDataFilterStatistics
 
class  NetlinkException
 
struct  NetlinkMulticastGroup
 
class  PacketDelayer
 
class  PacketDropper
 
struct  PacketHeaderParser
 Emulated network packet header parser. More...
 
struct  PacketHeaderType
 Emulated interface packet header. More...
 
struct  RadarEvent
 
class  Receiver
 Interface API base class for receive capable interfaces. More...
 
class  ReceiverDecorator
 Decorator for Receivers. More...
 
class  ReceiverDecoratorImplementation
 Implementing the receiver decorator. More...
 
class  REDQueue
 
struct  RegulatoryDomain
 
struct  RegulatoryDomainChangeEvent
 
class  RegulatoryRule
 
struct  ScanEvent
 
class  SimpleInterfaceIdFactory
 
struct  StatsDataCollectorKernel
 
struct  StatsDataPktCountsKernel
 
class  TAPEthernetInterface
 Hardware Ethernet Interface. More...
 
class  TokenBucketFilter
 
class  Transmitter
 Interface API base class for transmit capable interfaces. More...
 
class  TransmitterDecorator
 Decorator for Transmitters. More...
 
class  TransmitterDecoratorImplementation
 Implementing the transmitter decorator. More...
 
class  TSFTHistogram
 
struct  TunnelCapacityPacketParser
 
class  TunnelClientInterface
 
struct  TunnelCtrlPacketParser
 
struct  TunnelCtrlPacketType
 
struct  TunnelHeaderPacketParser
 
struct  TunnelHeaderPacketType
 
class  TunnelInterfaceBase
 
class  TunnelServerInterface
 Tunnel Server Interface. More...
 
class  TypedInterfaceDecorator
 Specialized Interface decorator base-class. More...
 
class  UnixFileHandle
 
struct  VHTCapabilitiesInfo
 
struct  VLanId
 
class  WifiStatistics
 
struct  WifiStatisticsData
 
struct  WifiStatsKernel
 
class  WiredInterface
 Wired interface base class. More...
 
class  WiredReceiver
 Wired receiver base class. More...
 
class  WiredTransmitter
 Wired transmitter base class. More...
 
class  WirelessExtController
 
class  WirelessInterface
 Interface API base class specialization for wireless interfaces. More...
 
class  WirelessNLController
 
class  WirelessReceiver
 Receive capable wireless interface base class. More...
 
class  WirelessTransmitter
 Transmit capable wireless interface base class. More...
 
class  WLANInterface
 
class  WLANModulationParameter
 
class  WLANModulationParameterRegistry
 
struct  WLANPacketHeaderParser
 Internal: WLAN Specific emulated interface packet header. More...
 
struct  WLANPacketHeaderType
 Internal WLAN Specific emulated interface packet type. More...
 

Typedefs

typedef senf::UDPv4ClientSocketHandle UDPClientHandle
 
typedef std::function< void(senf::EthernetPacket const &eth)> HandleEthPkt
 
typedef senf::ConcretePacket< EthernetFragmentPacketTypeEthernetFragmentPacket
 
typedef senf::ConcretePacket< InternalThroughputTestPacketType > InternalThroughputTestPacket
 
typedef InterfaceAPIBase< interface::Wired, interface::BidirectionalBidirectionalWiredInterface
 
typedef InterfaceAPIBase< interface::Wireless, interface::BidirectionalBidirectionalWirelessInterface
 
typedef ConcretePacket< TunnelCtrlPacketTypeTunnelCtrlPacket
 
typedef senf::ConcretePacket< TunnelHeaderPacketTypeTunnelHeaderPacket
 
typedef ConcretePacket< PacketHeaderTypePacketHeader
 PacketHeader packet typedef. More...
 
typedef ConcretePacket< WLANPacketHeaderTypeWLANPacketHeader
 
typedef ConcretePacket< EmulatedWirelessPacketHeaderTypeEmulatedWirelessPacketHeader
 
typedef ConcretePacket< DVBPacketHeaderTypeDVBPacketHeader
 
typedef ConcretePacket< EthernetPacketHeaderTypeEthernetPacketHeader
 
typedef std::uint16_t VLanTag
 
typedef std::set< VLanIdVLanIdSet
 
typedef std::unordered_set< VLanIdVLanIdSetFast
 
typedef boost::unordered_map< senf::MACAddress, WifiStatisticsDataWifiStatisticsMap
 

Functions

 SENF_CONSOLE_REGISTER_ENUM_MEMBER (DVBModulationParameter, fec_rate_t,(FEC_NONE)(FEC_1_2)(FEC_2_3)(FEC_3_4)(FEC_4_5)(FEC_5_6)(FEC_6_7)(FEC_7_8)(FEC_8_9)(FEC_AUTO)(FEC_3_5)(FEC_9_10))
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (DVBModulationParameter, modulation_t,(QPSK)(QAM_16)(QAM_32)(QAM_64)(QAM_128)(QAM_256)(QAM_AUTO)(VSB_8)(VSB_16)(PSK_8)(APSK_16)(APSK_32)(DQPSK))
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (DVBModulationParameter, guard_interval_t,(GUARD_INTERVAL_1_32)(GUARD_INTERVAL_1_16)(GUARD_INTERVAL_1_8)(GUARD_INTERVAL_1_4)(GUARD_INTERVAL_AUTO)(GUARD_INTERVAL_1_128)(GUARD_INTERVAL_19_128)(GUARD_INTERVAL_19_256))
 
EmulatedFrequencyRegistryemulatedFrequencyRegistry ()
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (WirelessNLController::ChannelType, Enum,(NoHT)(HT20)(HT40Minus)(HT40Plus))
 
console::DirectoryNodeinterfaceDir ()
 
boost::uint16_t perturb (boost::uint16_t value)
 
void macIdSeed (boost::uint16_t seed)
 Re-seed the MACAddress address generator. More...
 
MACAddress uniqueMAC (boost::uint32_t magic)
 Get pseudo-random but unique MACAddress. More...
 
std::ostream & operator<< (std::ostream &os, InterfaceDeviceId const &id)
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (InterfaceDeviceId, Bus_t,(Unknown)(PCI)(PCIe)(USB))
 
 SENF_LOG_DEFINE_STREAM (Log, senf::log::MESSAGE, senf::log::MESSAGE, senf::log::NOTICE)
 
 SENF_PACKET_FWD_DECL (TunnelCtrlPacket)
 
 SENF_PACKET_FWD_DECL (TunnelHeaderPacket)
 
std::size_t hash_value (VLanId const &v)
 
std::ostream & operator<< (std::ostream &os, VLanId const &vlanId)
 
void senf_console_parse_argument (senf::console::ParseCommandInfo::TokensRange const &tokens, VLanId &vlanId)
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (EmulatedWLANInterface, Mode,(ADHOC)(STA)(AP))
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (WirelessNLController, Band_t,(BAND_2GHZ)(BAND_5GHZ))
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (HardwareWLANInterface::HTMode, Enum,(Disabled)(Enabled)(HT20only)(HT40only))
 
 SENF_LOG_DEFINE_NAMED_AREA (WlanLogArea, "emu::WLAN")
 
std::ostream & operator<< (std::ostream &os, RegulatoryRule const &rule)
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (RegulatoryRule, Flags,(NoOFDM)(NoCCK)(NoIndoor)(NoOutdoor)(DFS)(PTPOnly)(PTMPOnly)(NoIR)(NoIBSS)(AutoBW))
 
std::ostream & operator<< (std::ostream &os, RegulatoryDomain const &regDomain)
 
 SENF_CONSOLE_REGISTER_STRONG_ENUM_MEMBER (RegulatoryDomain, DFSRegion,(key("DFS_Unset", Unset))(key("DFS_FCC", FCC))(key("DFS_ETSI", ETSI))(key("DFS_JP", JP)))
 
struct senf::emu::StatsDataCollectorKernel __attribute__ ((packed))
 
 SENF_CONSOLE_REGISTER_ENUM_MEMBER (WLANModulationParameter, Type,(Legacy)(HT)(VHT)(Automatic))
 

Variables

const short DEFAULT_WLAN_NOISE =-110
 
struct senf::emu::MonitorDataFilterStatistics __attribute__
 

Typedef Documentation

◆ BidirectionalWiredInterface

◆ BidirectionalWirelessInterface

◆ DVBPacketHeader

◆ EmulatedWirelessPacketHeader

◆ EthernetFragmentPacket

◆ EthernetPacketHeader

◆ HandleEthPkt

typedef std::function<void (senf::EthernetPacket const & eth)> senf::emu::HandleEthPkt

Definition at line 29 of file EthernetAnnotator.hh.

◆ InternalThroughputTestPacket

typedef senf::ConcretePacket<InternalThroughputTestPacketType> senf::emu::InternalThroughputTestPacket

Definition at line 52 of file InternalThroughputTestPacket.hh.

◆ PacketHeader

PacketHeader packet typedef.

Definition at line 85 of file Packets.hh.

◆ TunnelCtrlPacket

◆ TunnelHeaderPacket

◆ UDPClientHandle

◆ VLanIdSet

Definition at line 69 of file VLanId.hh.

◆ VLanIdSetFast

typedef std::unordered_set<VLanId> senf::emu::VLanIdSetFast

Definition at line 71 of file VLanId.hh.

◆ VLanTag

typedef std::uint16_t senf::emu::VLanTag

Definition at line 29 of file VLanId.hh.

◆ WifiStatisticsMap

Definition at line 136 of file WifiStatistics.hh.

◆ WLANPacketHeader

Function Documentation

◆ __attribute__()

struct senf::emu::StatsDataCollectorKernel senf::emu::__attribute__ ( (packed)  )

◆ emulatedFrequencyRegistry()

EmulatedFrequencyRegistry& senf::emu::emulatedFrequencyRegistry ( )

◆ hash_value()

std::size_t senf::emu::hash_value ( VLanId const &  v)

◆ interfaceDir()

senf::console::DirectoryNode & senf::emu::interfaceDir ( )

Definition at line 215 of file InterfaceAPI.cc.

◆ macIdSeed()

void senf::emu::macIdSeed ( boost::uint16_t  seed)

Re-seed the MACAddress address generator.

To support interface implementations, the uniqueMAC() function can be used to get a pseudo-random mac address. The Addresses are pseudo random. The default seed is calculated from the process id and the current time, the seed may however be changed explicitly.

Definition at line 228 of file InterfaceAPI.cc.

◆ operator<<() [1/4]

std::ostream & senf::emu::operator<< ( std::ostream &  os,
InterfaceDeviceId const &  id 
)

Definition at line 105 of file InterfaceId.cc.

◆ operator<<() [2/4]

std::ostream & senf::emu::operator<< ( std::ostream &  os,
VLanId const &  vlanId 
)

Definition at line 29 of file VLanId.cc.

◆ operator<<() [3/4]

std::ostream & senf::emu::operator<< ( std::ostream &  os,
RegulatoryRule const &  rule 
)

Definition at line 271 of file Regulatory.cc.

◆ operator<<() [4/4]

std::ostream & senf::emu::operator<< ( std::ostream &  os,
RegulatoryDomain const &  regDomain 
)

Definition at line 265 of file Regulatory.cc.

◆ perturb()

boost::uint16_t senf::emu::perturb ( boost::uint16_t  value)

Definition at line 221 of file InterfaceAPI.cc.

◆ senf_console_parse_argument()

void senf::emu::senf_console_parse_argument ( senf::console::ParseCommandInfo::TokensRange const &  tokens,
VLanId vlanId 
)

Definition at line 42 of file VLanId.cc.

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [1/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( WLANModulationParameter  ,
Type  ,
(Legacy)(HT)(VHT)(Automatic)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [2/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( InterfaceDeviceId  ,
Bus_t  ,
(Unknown)(PCI)(PCIe)(USB)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [3/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( EmulatedWLANInterface  ,
Mode  ,
(ADHOC)(STA)(AP)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [4/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( WirelessNLController::ChannelType  ,
Enum  ,
(NoHT)(HT20)(HT40Minus)(HT40Plus)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [5/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( RegulatoryRule  ,
Flags  ,
(NoOFDM)(NoCCK)(NoIndoor)(NoOutdoor)(DFS)(PTPOnly)(PTMPOnly)(NoIR)(NoIBSS)(AutoBW)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [6/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( DVBModulationParameter  ,
fec_rate_t  ,
(FEC_NONE)(FEC_1_2)(FEC_2_3)(FEC_3_4)(FEC_4_5)(FEC_5_6)(FEC_6_7)(FEC_7_8)(FEC_8_9)(FEC_AUTO)(FEC_3_5)(FEC_9_10)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [7/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( DVBModulationParameter  ,
modulation_t  ,
(QPSK)(QAM_16)(QAM_32)(QAM_64)(QAM_128)(QAM_256)(QAM_AUTO)(VSB_8)(VSB_16)(PSK_8)(APSK_16)(APSK_32)(DQPSK)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [8/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( DVBModulationParameter  ,
guard_interval_t  ,
(GUARD_INTERVAL_1_32)(GUARD_INTERVAL_1_16)(GUARD_INTERVAL_1_8)(GUARD_INTERVAL_1_4)(GUARD_INTERVAL_AUTO)(GUARD_INTERVAL_1_128)(GUARD_INTERVAL_19_128)(GUARD_INTERVAL_19_256)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [9/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( WirelessNLController  ,
Band_t  ,
(BAND_2GHZ)(BAND_5GHZ)   
)

◆ SENF_CONSOLE_REGISTER_ENUM_MEMBER() [10/10]

senf::emu::SENF_CONSOLE_REGISTER_ENUM_MEMBER ( HardwareWLANInterface::HTMode  ,
Enum  ,
(Disabled)(Enabled)(HT20only)(HT40only)   
)

◆ SENF_CONSOLE_REGISTER_STRONG_ENUM_MEMBER()

senf::emu::SENF_CONSOLE_REGISTER_STRONG_ENUM_MEMBER ( RegulatoryDomain  ,
DFSRegion  ,
(key("DFS_Unset", Unset))(key("DFS_FCC", FCC))(key("DFS_ETSI", ETSI))(key("DFS_JP", JP))   
)

◆ SENF_LOG_DEFINE_NAMED_AREA()

senf::emu::SENF_LOG_DEFINE_NAMED_AREA ( WlanLogArea  ,
"emu::WLAN"   
)

◆ SENF_LOG_DEFINE_STREAM()

senf::emu::SENF_LOG_DEFINE_STREAM ( Log  ,
senf::log::MESSAGE  ,
senf::log::MESSAGE  ,
senf::log::NOTICE   
)

◆ SENF_PACKET_FWD_DECL() [1/2]

senf::emu::SENF_PACKET_FWD_DECL ( TunnelCtrlPacket  )

◆ SENF_PACKET_FWD_DECL() [2/2]

senf::emu::SENF_PACKET_FWD_DECL ( TunnelHeaderPacket  )

◆ uniqueMAC()

senf::MACAddress senf::emu::uniqueMAC ( boost::uint32_t  magic)

Get pseudo-random but unique MACAddress.

This function generates random MACAddress. The first four bytes will be taken from magic while the last four bytes are generated randomly.

Definition at line 233 of file InterfaceAPI.cc.

Variable Documentation

◆ __attribute__

struct senf::emu::WifiStatisticsData senf::emu::__attribute__

◆ DEFAULT_WLAN_NOISE

const short senf::emu::DEFAULT_WLAN_NOISE =-110

Definition at line 36 of file MonitorDataFilter.hh.