EMANE  1.0.1
EMANE Namespace Reference

Namespaces

 Agents
 
 Application
 
 ControlPort
 
 Controls
 
 Events
 
 Generators
 
 Messages
 
 Models
 
 ThreadUtils
 
 Transports
 
 Utils
 

Classes

class  AntennaPattern
 
class  AntennaProfileException
 
class  AntennaProfileManifest
 
class  Any
 The Any class can contain an instance of one of any type in its support type set. More...
 
struct  AnyConvertableType
 
class  AnyException
 AnyException is thrown when an exception occurs during creation or conversion of an Any. More...
 
class  BoundaryMessageManager
 
class  BoundaryMessageManagerException
 Exception thrown by the during BoundaryMessageManagerException to indicate connection failure. More...
 
class  Buildable
 A interface to mark objects with a unique application wide build Id. Builders manipulate buildable objects to register their association with other application objects and to enforce composition rules. More...
 
class  BuildException
 Exception thrown by builders when constructing and assembling application objects and containers. More...
 
class  BuildIdService
 
class  Cloneable
 
class  CommonMACHeader
 
class  CommonMACHeaderException
 Component common mac header exception thrown when there is an issue serializing or deserializing the header. More...
 
class  CommonPHYHeader
 The common physical layer header used to facilitate heterogeneous radio model experimentation. More...
 
class  Component
 Generic interface used to configure and control all components. More...
 
class  ConfigurationException
 ConfigurationException is thrown when an exception occurs during configuration processing. More...
 
class  ConfigurationInfo
 Holds configuration item meta information. More...
 
class  ConfigurationParser
 Wrapper around the libxml2 XML parsing capabilities for EMANE. More...
 
class  ConfigurationRegistrar
 The ConfigurationRegistrar allows NEM layers to register the configuration items they require. More...
 
class  ConfigurationRegistrarProxy
 Provides component specific proxy access to the configuration service. More...
 
class  ConfigurationService
 
class  ConfigureException
 Exception thrown when failures in configuration occur. More...
 
class  ControlMessage
 ControlMessage interface is the base for all control messages. More...
 
struct  ControlMessageHeader
 
class  ControlMessageSerializer
 
class  ControlMessageSerializerException
 Exception thrown to indicate a serialization or deserialization error. More...
 
struct  ControlMessageSerializerHeader
 
class  DatagramSocket
 
class  DownstreamControlTransport
 DownstreamControlTransport allows for processing downstream control messages. More...
 
class  DownstreamPacket
 Specialized packet the allows downstream processing to add layer specific headers as the packet travels down the stack. Optionally, events can be attached to the packet to guarantee delivery before the packet. More...
 
class  DownstreamTransport
 DownstreamTransport allows for processing downstream data and control messages. More...
 
class  Event
 Event interface is the base for all events. More...
 
class  EventAgent
 Base class for all event agents. More...
 
class  EventAgentConfiguration
 Contains all configuration associated with an EventAgent. More...
 
class  EventAgentDirector
 Director used to build EventDaemon (s) with EventAgentBuilder. More...
 
class  EventAgentFactory
 Factory for creating EventAgents. The factory manages the DLL allowing for the creation of multiple agents. More...
 
class  EventAgentFactoryManager
 Factory Manager Singleton cache for EventAgentFactory objects. The manager creates and caches the factories and keeps them in scope for the duration of its lifecycle. More...
 
class  EventDaemonConfiguration
 Implementation of Configuration to properly configure the EventDaemonManager. More...
 
class  EventDirector
 Director used to build EventGenerator (s) with EventGeneratorBuilder. More...
 
class  EventGenerator
 Base class for all event generators. More...
 
class  EventGeneratorConfiguration
 Contains all configuration associated with an EventGenerator. More...
 
class  EventGeneratorFactory
 Factory for creating EventGenerators. The factory manages the DLL allowing for the creation of multiple generators. More...
 
class  EventGeneratorFactoryManager
 Factory Manager Singleton cache for EventGeneratorFactory objects. The manager creates and caches the factories and keeps them in scope for the duration of its lifecycle. More...
 
class  EventRegistrar
 The EventRegistrar allows NEM layers to register to receive events. Only those events registered will be received. More...
 
class  EventRegistrarProxy
 
class  EventService
 
class  EventServiceConfiguration
 Implementation of Configuration to properly configure the EventServiceManager. More...
 
class  EventServiceException
 Exception thrown during open/establishment of the event service communication channel. More...
 
class  EventServiceProvider
 Event service provider interface. More...
 
class  EventServiceProxy
 
class  EventServiceUser
 EventServiceUser interface. More...
 
class  EventStatisticPublisher
 
class  EventTablePublisher
 
class  Exception
 Exception base class that allows for type and description information. More...
 
class  FileDescriptorServiceProvider
 File Descriptor service interface allows for adding arbitrary file descriptors for read or write processing on the NEMQueuedLayer functor queue. More...
 
class  FlowControlClient
 FlowControlClient is the token consumer side of nem layer to transport flow contol. More...
 
class  FlowControlManager
 Flow Control Manager (token producer) side. More...
 
class  FrameworkPHY
 
class  FreeSpacePropagationModelAlgorithm
 
class  FrequencySegment
 Holds the frequency, offset and duration of a frequency segment. More...
 
class  GainManager
 
class  INETAddr
 
class  INETAddrException
 
class  InitializeException
 Exception thrown during component initialization. More...
 
struct  is_any_convertable_nonnumeric
 
struct  is_any_convertable_nonnumeric< INETAddr >
 
struct  is_any_convertable_nonnumeric< std::string >
 
class  LayerConfiguration
 Provides default implementation to common layer functionalities. More...
 
class  LayerFactory
 Factory for creating T layers . The factory manages the DLL allowing for the creation of layers of the same type. More...
 
class  LayerFactoryManager
 Factory Manager Singleton cache for LayerFactory objects. The manager creates and caches the factories and keeps them in scope for the duration of its lifecycle. More...
 
class  LocationInfo
 
class  LocationInfoFormatter
 
class  LocationManager
 
class  LogService
 Platform log service. More...
 
class  LogServiceProvider
 Log service provider interface. More...
 
class  MACLayer
 Bridge for the MAC NEM layer. Decouples a MACLayerImplementor implementation from the NEM to allow for interface modification and encapsulation. More...
 
class  MACLayerImplementor
 Interface used to create a MAC layer plugin implementation. More...
 
class  MulticastSocket
 
class  NeighborMetricManager
 Manages neighbor metrics and sends neighbor metric control message upstream. More...
 
class  NEMConfiguration
 Contains all configuration associated with an NEM. More...
 
class  NEMDirector
 Director used to build Platform NEM (s) with the NEMBuilder. More...
 
class  NEMLayer
 Base class for NEMLayer containers. Builders construct NEMLayer objects to contain derived instances of NEMLayer objects and track them through the system. Model implementors should derive from one of the layer implementor classes, not this class. More...
 
class  NEMLayerStack
 A stack of NEM layers. Allows ownership and connection of NEM layers in a non layer specific manner. More...
 
class  NEMLayerState
 Encapsulated behavior associated with an NEMLayer depending on the layer's current context. More...
 
class  NEMLayerStateConfigured
 Component configuration complete. Allowable transitions are Component::configure() and Component::start() More...
 
class  NEMLayerStateDestroyed
 Component stopped state complete. More...
 
class  NEMLayerStateInitialized
 Component intialization complete. The only allowable transition if Component::configure() More...
 
class  NEMLayerStateRunning
 Component start complete all transport processing and event actions are now allowed. Allowable transitions are Component::stop(). More...
 
class  NEMLayerStateStopped
 Component running state complete. The only allowable transition if Component::destory() More...
 
class  NEMLayerStateUninitialized
 Initial state for all NEMStatefulLayers. The only allowable transition is Component::initialize() More...
 
class  NEMNetworkAdapter
 Entry point for packets and crontrol sourced and sinked from the network layer. More...
 
class  NEMOTAAdapter
 Over-the-Air adapter handles the intra and inter platform OTA transport. More...
 
class  NEMPlatformService
 NEM platform service. More...
 
class  NEMQueuedLayer
 A layer stack with a porcessing queue between each layer to decouple to intra queue processing. More...
 
class  NEMStatefulLayer
 A layer stack that enforces component state transition rules. The stateful layer is not a fully functional layer it wraps a real NEM layer allowing only correct transitions and state actions. More...
 
class  NEMTimerServiceProxy
 
struct  NetAdapterControlMessage
 information shared between network adapter and nem. More...
 
struct  NetAdapterDataMessage
 data shared between network adapter and nem. More...
 
class  NetAdapterHeader
 NetAdapter message header. More...
 
class  NetworkAdapterException
 Exception thrown during open/establishment of network adapter connection. More...
 
class  NoiseRecorder
 
class  NOPFileDescriptorService
 
class  Orientation
 Holds pitch, yaw and roll. More...
 
class  OrientationFormatter
 Callable formatter object for Orientation instances. More...
 
class  OTAException
 Exception thrown when registering or unregistering OTAUsers. More...
 
class  OTAManager
 Provides OTA access to all platform NEMs and handles intra and inter platform OTA message dissemination. More...
 
class  OTAProvider
 Interface for OTA. More...
 
class  OTAStatisticPublisher
 
class  OTAUser
 OTA user interface that allows access to the OTA provider. More...
 
class  PacketInfo
 Store source, destination, creation time and priority information for a packet. More...
 
class  ParseException
 Parse-specific type of the EMANEException. More...
 
class  PHYLayer
 Bridge for the PHY NEM layer. Decouples a PHYLayerImplementor implementation from the NEM to allow for interface modification and encapsulation. More...
 
class  PHYLayerFactory
 
class  PHYLayerImplementor
 Interface used to create a PHY layer plugin implementation. More...
 
class  PlatformConfiguration
 Contains configuration for the Platform. More...
 
class  PlatformException
 Exception thrown when NEMs are added to a platform. More...
 
class  PlatformService
 platform service More...
 
class  PlatformServiceProvider
 The PlatformServiceProvider interface provides access to emulator services. More...
 
class  PlatformServiceUser
 Platform service user interface that provides access to the platform services. More...
 
class  PluginConfiguration
 Contains the configuration for a MAC layer. More...
 
class  Position
 Holds latitude, longitude and altitude. More...
 
class  PositionECEF
 
class  PositionFormatter
 Callable formatter object for Position instances. More...
 
class  PositionNEU
 
class  PositionNEUFormatter
 Callable formatter object for PositioNEU instances. More...
 
class  PositionOrientationVelocity
 
class  PositionOrientationVelocityFormatter
 
class  PrecomputedPropagationModelAlgorithm
 
class  PropagationModelAlgorithm
 
class  QueueMetricManager
 Manager Queue metrics. More...
 
class  RadioService
 radio service interface More...
 
class  RadioServiceProvider
 The RadioServiceProvider interface provides access to radio (RF) model specific services. More...
 
class  RadioServiceUser
 Radio service user interface allows access to the radio services. More...
 
class  ReceivePowerTablePublisher
 
class  Registrar
 The Registrar interface provides access to all of the emulator registrars. More...
 
class  RegistrarException
 RegistrarException is thrown when an exception occurs during registration. More...
 
class  RegistrarProxy
 
class  RunningStateMutable
 The RunningStateMutable interface is used to allow dynamic running-state configuration changes. Configuration is placed on the NEMQueuedLayer functor queue for processing. More...
 
class  Serializable
 The Serializable interface provides the API used to serialize headers, control messages and events. More...
 
class  SerializationException
 SerializationException is thrown when an exception occurs during serialization or deserialization of a Serializable. More...
 
class  ShimLayer
 Bridge for a shim NEM layer. Decouples a ShimLayerImplementor implementation from the NEM to allow for interface modification and encapsulation. More...
 
class  ShimLayerImplementor
 Interface used to create a Shim layer plugin implementation. More...
 
class  Socket
 
class  SocketException
 
class  SpectrumMonitor
 
class  SpectrumServiceException
 SpectrumServiceException is thrown when an exception occurs during spectrum service processing. More...
 
class  SpectrumServiceProvider
 The SpectrumServiceProvider interface provides an API to request noise window information. More...
 
class  StartException
 Component start exception is used to indicate an exception during transition to the start state. More...
 
class  Statistic
 The Statistic interface is the base class of all statistics. It provided methods to access and clear the statistic. More...
 
class  StatisticInfo
 Holds name, type, property and description of a Statistic. More...
 
class  StatisticNonNumeric
 A non-numeric statistic can be a std::string or an INETAddr. More...
 
class  StatisticNumeric
 Defines a numeric statistic and its operations. More...
 
class  StatisticRegistrar
 The StatisticRegistrar allows NEM layers to register statistics and statistic tables. Statistics and Statistic tables are owned by the emulator framework and a borrowed reference is returned to the registering NEM layer. More...
 
class  StatisticRegistrarProxy
 
class  StatisticService
 
class  StatisticTable
 A two dimentional statistic table that holds Any values. More...
 
class  StatisticTableException
 StatistictableException is thrown when an exception occurs during creation or conversion of an StatisticTable. More...
 
class  StatisticTableInfo
 Holds name, property and description of a StatisticTable. More...
 
class  StatisticTablePublisher
 A StatisticTablePublisher produces two dimensional tables of Anys. More...
 
class  StopException
 Exception thrown during a component stop. More...
 
class  TimerService
 Platform timer service. More...
 
class  TimerServiceException
 Exception thrown during open/establishment of the timer service. More...
 
class  TimerServiceProvider
 Timer service interface the allows for scheduling timers that are placed on the NEMQueuedLayer functor queue for processing. More...
 
class  TimerServiceProxy
 
class  TimerServiceUser
 TimerServiceUser interface. More...
 
class  Transmitter
 Holds transmitter id and power level. More...
 
class  Transport
 Base class for all transports. More...
 
class  TransportDaemonConfiguration
 Implementation of Configuration to properly configure the TransportManager. More...
 
class  TransportDirector
 Director used to build EventDaemon (s) with TransportBuilder. More...
 
class  TransportFactory
 Factory for creating Transports. The factory manages the DLL allowing for the creation of multiple transports. It does not appear obvious why we would expaind functionality to include multiple transports for a single NEM... More...
 
class  TransportFactoryManager
 Factory Manager Singleton cache for TransportFactory objects. The manager creates and caches the factories and keeps them in scope for the duration of its lifecycle. More...
 
class  TransportInstanceConfiguration
 Contains all configuration associated with a TransportInstance. More...
 
class  TransportLayer
 Bridge for the Transport NEM layer. Decouples a TransportLayerImplementor implementation from the NEM to allow for interface modification and encapsulation. More...
 
class  TwoRayPropagationModelAlgorithm
 
class  UpstreamControlTransport
 UpstreamControlTransport interface allows for processing upstream control messages. More...
 
class  UpstreamPacket
 A Packet class that allows upstream processing to strip layer headers as the packet travels up the stack towards the emulation/application boundary (transport). More...
 
class  UpstreamTransport
 UpstreamTransport allows for processing upstream data and control messages. Upstream packets and control messages are placed on the NEMQueuedLayer functor queue for processing. More...
 
class  ValidateException
 Validation-specific type of the EMANEException. More...
 
class  Velocity
 Holds the velocity elements associated with an NEM's location information. More...
 
class  VelocityFormatter
 Callable formatter object for Velocity instances. More...
 
class  Wheel
 

Typedefs

using NEMLayerComponentBuildIdMap = std::map< NEMId, std::vector< std::tuple< BuildId, ComponentType, std::string > >>
 
using BuildIdServiceSingleton = BuildIdService
 
using ConfigurationServiceSingleton = ConfigurationService
 
using EventAgentFactoryManagerSingleton = EventAgentFactoryManager
 
using EventGeneratorFactoryManagerSingleton = EventGeneratorFactoryManager
 
using EventServiceSingleton = EventService
 
using MACLayerFactory = LayerFactory< MACLayerImplementor >
 
using ShimLayerFactory = LayerFactory< ShimLayerImplementor >
 
using LayerFactoryManagerSingleton = LayerFactoryManager
 
using LogServiceSingleton = LogService
 
using NEMLayerStateConfiguredSingleton = NEMLayerStateConfigured
 
using NEMLayerStateDestroyedSingleton = NEMLayerStateDestroyed
 
using NEMLayerStateInitializedSingleton = NEMLayerStateInitialized
 
using NEMLayerStateRunningSingleton = NEMLayerStateRunning
 
using NEMLayerStateStoppedSingleton = NEMLayerStateStopped
 
using NEMLayerStateUninitializedSingleton = NEMLayerStateUninitialized
 
using OTAManagerSingleton = OTAManager
 
using StatisticManifest = std::vector< StatisticInfo >
 
using StatisticTableManifest = std::vector< StatisticTableInfo >
 
using StatisticServiceSingleton = StatisticService
 
using TimerServiceSingleton = TimerService
 
using TransportFactoryManagerSingleton = TransportFactoryManager
 
using LayerConfigurations = std::list< LayerConfiguration * >
 
using LayerConfigurationsIter = LayerConfigurations::iterator
 
using NEMConfigurations = std::list< NEMConfiguration * >
 
using TransportInstanceConfigurations = std::list< TransportInstanceConfiguration * >
 
using ConfigurationNameStringValues = std::pair< std::string, std::vector< std::string > >
 
using ConfigurationUpdateRequest = std::vector< ConfigurationNameStringValues >
 
using ConfigurationNameAnyValues = std::pair< std::string, std::vector< EMANE::Any > >
 
using ConfigurationUpdate = std::vector< ConfigurationNameAnyValues >
 
using ConfigurationManifest = std::vector< ConfigurationInfo >
 
using ConfigurationValidator = std::function< std::pair< std::string, bool >(const ConfigurationUpdate &update) noexcept >
 
typedef std::list< const ControlMessage * > ControlMessages
 
using FrequencySegments = std::list< FrequencySegment >
 
typedef MACLayerImplementor *(* createMACFunc) (NEMId id, PlatformServiceProvider *p)
 
typedef void(* destroyMACFunc) (MACLayerImplementor *)
 
typedef PHYLayerImplementor *(* createPHYFunc) (NEMId id, PlatformServiceProvider *p)
 
typedef void(* destroyPHYFunc) (PHYLayerImplementor *)
 
using Serialization = std::string
 
typedef ShimLayerImplementor *(* createShimFunc) (NEMId id, PlatformServiceProvider *p, RadioServiceProvider *r)
 
typedef void(* destroyShimFunc) (ShimLayerImplementor *)
 
using FrequencySet = std::set< std::uint64_t >
 
using SpectrumWindow = std::tuple< std::vector< double >, TimePoint, Microseconds, double, bool >
 
using StatisticTableValues = std::vector< std::vector< Any > >
 
using StatisticTableLabels = std::vector< std::string >
 
using Transmitters = std::list< Transmitter >
 
using Seconds = std::chrono::seconds
 
using Milliseconds = std::chrono::milliseconds
 
using Microseconds = std::chrono::microseconds
 
using Nanoseconds = std::chrono::nanoseconds
 
using DoubleSeconds = std::chrono::duration< double >
 
using Clock = std::chrono::system_clock
 
using Duration = Clock::duration
 
using TimePoint = Clock::time_point
 
using NEMId = std::uint16_t
 
using EventId = std::uint16_t
 
using TimerEventId = std::size_t
 
using PlatformId = std::uint16_t
 
using AntennaProfileId = std::uint16_t
 
using ControlMessageId = std::uint16_t
 
using RegistrationId = std::uint16_t
 
using BuildId = std::uint32_t
 
using LengthPrefix = std::uint16_t
 
using Priority = std::uint8_t
 
using Strings = std::list< std::string >
 

Enumerations

enum  ANTENNA_MODE { ANTENNA_MODE_NONE = 0, ANTENNA_MODE_FIXED = 1, ANTENNA_MODE_PROFILE = 2 }
 Antenna Mode. More...
 
enum  ComponentType {
  COMPONENT_ALL = 0x0000, COMPONENT_PHYLAYER = 0x0001, COMPONENT_PHYILAYER = 0x0002, COMPONENT_MACLAYER = 0x0004,
  COMPONENT_MACILAYER = 0x0008, COMPONENT_SHIMLAYER = 0x0010, COMPONENT_SHIMILAYER = 0x0020, COMPONENT_TRANSPORTLAYER = 0x0040,
  COMPONENT_TRANSPORTILAYER = 0x0080, COMPONENT_GENERATORLAYER = 0x0100, COMPONENT_GENERATORILAYER = 0x0200, COMPONENT_EVENTAGENTLAYER = 0x0400,
  COMPONENT_EVENTAGENTILAYER = 0x0800
}
 
enum  ConfigurationProperties { ConfigurationProperties::NONE = 0x00, ConfigurationProperties::REQUIRED = 0x01, ConfigurationProperties::DEFAULT = 0x02, ConfigurationProperties::MODIFIABLE = 0x04 }
 
enum  LogLevel {
  NOLOG_LEVEL = 0, ABORT_LEVEL = 1, ERROR_LEVEL = 2, INFO_LEVEL = 3,
  DEBUG_LEVEL = 4
}
 
enum  StatisticProperties { StatisticProperties::NONE = 0x00, StatisticProperties::CLEARABLE = 0x01 }
 

Functions

struct EMANE::ControlMessageHeader __attribute__ ((packed))
 
EMANEMessage::LoggerMessage_LogLevel convertLogLevel (EMANE::LogLevel level)
 
EMANE::LogLevel convertLogLevel (EMANEMessage::LoggerMessage_LogLevel level)
 
NetAdapterHeaderNetAdapterHeaderToHost (NetAdapterHeader *pMsg)
 
NetAdapterHeaderNetAdapterHeaderToNet (NetAdapterHeader *pMsg)
 
NetAdapterControlMessageNetAdapterControlMessageToHost (NetAdapterControlMessage *ctrl)
 
NetAdapterControlMessageNetAdapterControlMessageToNet (NetAdapterControlMessage *ctrl)
 
NetAdapterDataMessageNetAdapterDataMessageToHost (NetAdapterDataMessage *pkt)
 converts netadapter data message from network to host byte order. More...
 
NetAdapterDataMessageNetAdapterDataMessageToNet (NetAdapterDataMessage *pkt)
 converts netadapter data message from host to network byte order. More...
 
std::string anyTypeAsString (const Any::Type &type)
 
constexpr ConfigurationProperties operator| (ConfigurationProperties a, ConfigurationProperties b)
 
constexpr ConfigurationProperties operator & (ConfigurationProperties a, ConfigurationProperties b)
 
template<typename T , std::size_t len = 1024>
makeException (const char *fmt,...)
 
constexpr std::uint64_t HTONLL (std::uint64_t x)
 
constexpr std::uint64_t NTOHLL (std::uint64_t x)
 
constexpr std::uint32_t HTONL (std::uint32_t x)
 
constexpr std::uint32_t NTOHL (std::uint32_t x)
 
constexpr std::uint16_t HTONS (std::uint16_t x)
 
constexpr std::uint16_t NTOHS (std::uint16_t x)
 
constexpr StatisticProperties operator| (StatisticProperties a, StatisticProperties b)
 
constexpr StatisticProperties operator & (StatisticProperties a, StatisticProperties b)
 

Variables

const std::uint16_t NETADAPTER_DATA_MSG = 1
 
const std::uint16_t NETADAPTER_CTRL_MSG = 2
 
const std::uint16_t NETADAPTER_BROADCAST_ADDRESS = 0xFFFF
 definition of the broadcast address used between network adapter and nem. More...
 
EMANE::NetworkAdapterException __attribute__
 
const float DBM_MIN = {-327.0f}
 
const float DBM_MAX = {327.0f}
 
const double THERMAL_NOISE_DB {-174.0}
 
const double ARC_SECONDS_PER_DEGREE {3600.0}
 
const double MILLI_ARC_SECONDS_PER_DEGREE {3600.0e3}
 
const double SEMI_MAJOR {6378137.0}
 
const double SEMI_MINOR {6356752.3142}
 
const double SEMI_MAJOR_2 {SEMI_MAJOR * SEMI_MAJOR}
 
const double SEMI_MINOR_2 {SEMI_MINOR * SEMI_MINOR}
 
const double ECC2 {(SEMI_MAJOR_2 - SEMI_MINOR_2) / SEMI_MAJOR_2}
 
const double SOL_MPS {299792458.0}
 
const float USEC_PER_SEC_F {1.0e6}
 
const RegistrationId REGISTERED_EMANE_MAC_BYPASS = 0x0001
 
const RegistrationId REGISTERED_EMANE_MAC_LEGACY_802_11 = 0x0002
 
const RegistrationId REGISTERED_EMANE_MAC_IEEE_802_11_ABG = 0x0003
 
const RegistrationId REGISTERED_EMANE_MAC_RF_PIPE = 0x0004
 
const RegistrationId REGISTERED_EMANE_MAC_TDMA = 0x0005
 
const RegistrationId REGISTERED_EMANE_PHY_BYPASS = 0x0001
 
const RegistrationId REGISTERED_EMANE_PHY_COMM_EFFECT = 0x0005
 
const RegistrationId REGISTERED_EMANE_PHY_FRAMEWORK = 0x0007
 
constexpr NEMId NEM_BROADCAST_MAC_ADDRESS {std::numeric_limits<NEMId>::max()}
 

Typedef Documentation

◆ AntennaProfileId

using EMANE::AntennaProfileId = typedef std::uint16_t

Definition at line 57 of file types.h.

◆ BuildId

using EMANE::BuildId = typedef std::uint32_t

Definition at line 60 of file types.h.

◆ BuildIdServiceSingleton

Definition at line 106 of file buildidservice.h.

◆ Clock

using EMANE::Clock = typedef std::chrono::system_clock

Definition at line 48 of file types.h.

◆ ConfigurationManifest

using EMANE::ConfigurationManifest = typedef std::vector<ConfigurationInfo>

[configurationregistrar-configurationnameanyvalues-snippet] Configuration item manifest

Parameters
std::vector<ConfigurationInfo>A Vector of EMANE::ConfigurationInfo entries

Definition at line 93 of file configurationupdate.h.

◆ ConfigurationNameAnyValues

using EMANE::ConfigurationNameAnyValues = typedef std::pair<std::string,std::vector<EMANE::Any> >

[configurationregistrar-configurationnameanyvalues-snippet] Configuration item name and values as EMANE::Any instances

Parameters
std::stringConfiguration item name
std::vector<EMANE::Any>A Vector of configuration values

Definition at line 72 of file configurationupdate.h.

◆ ConfigurationNameStringValues

using EMANE::ConfigurationNameStringValues = typedef std::pair<std::string,std::vector<std::string> >

Configuration item name and values as strings

Parameters
std::stringConfiguration item name
std::vector<std::string>Vector of configuration values

Definition at line 51 of file configurationupdate.h.

◆ ConfigurationServiceSingleton

◆ ConfigurationUpdate

Configuration update consisting of item names and their values as EMANE::Any instances

Parameters
std::vector<ConfigurationNameAnyValues>A Vector of configuration items and their values

Definition at line 82 of file configurationupdate.h.

◆ ConfigurationUpdateRequest

Configuration update request consisting of item names and their values as strings

Parameters
std::vector<ConfigurationNameStringValues>A Vector of configuration items and their values

Definition at line 61 of file configurationupdate.h.

◆ ConfigurationValidator

using EMANE::ConfigurationValidator = typedef std::function<std::pair<std::string,bool>(const ConfigurationUpdate & update) noexcept>

Callback used to validate configuration item relationships

Parameters
updateThe complete configuration including any newly requested changes
Returns
A pair where first is an error description second is a boolean which indicates an error when set false.

Definition at line 104 of file configurationupdate.h.

◆ ControlMessageId

using EMANE::ControlMessageId = typedef std::uint16_t

Definition at line 58 of file types.h.

◆ ControlMessages

typedef std::list<const ControlMessage *> EMANE::ControlMessages

Definition at line 77 of file controlmessage.h.

◆ createMACFunc

typedef MACLayerImplementor*(* EMANE::createMACFunc) (NEMId id, PlatformServiceProvider *p)

Definition at line 100 of file maclayerimpl.h.

◆ createPHYFunc

typedef PHYLayerImplementor*(* EMANE::createPHYFunc) (NEMId id, PlatformServiceProvider *p)

Definition at line 103 of file phylayerimpl.h.

◆ createShimFunc

typedef ShimLayerImplementor*(* EMANE::createShimFunc) (NEMId id, PlatformServiceProvider *p, RadioServiceProvider *r)

Definition at line 65 of file shimlayerimpl.h.

◆ destroyMACFunc

typedef void(* EMANE::destroyMACFunc) (MACLayerImplementor *)

Definition at line 101 of file maclayerimpl.h.

◆ destroyPHYFunc

typedef void(* EMANE::destroyPHYFunc) (PHYLayerImplementor *)

Definition at line 104 of file phylayerimpl.h.

◆ destroyShimFunc

typedef void(* EMANE::destroyShimFunc) (ShimLayerImplementor *)

Definition at line 68 of file shimlayerimpl.h.

◆ DoubleSeconds

using EMANE::DoubleSeconds = typedef std::chrono::duration<double>

Definition at line 47 of file types.h.

◆ Duration

using EMANE::Duration = typedef Clock::duration

Definition at line 49 of file types.h.

◆ EventAgentFactoryManagerSingleton

◆ EventGeneratorFactoryManagerSingleton

◆ EventId

using EMANE::EventId = typedef std::uint16_t

Definition at line 53 of file types.h.

◆ EventServiceSingleton

Definition at line 120 of file eventservice.h.

◆ FrequencySegments

using EMANE::FrequencySegments = typedef std::list<FrequencySegment>

Definition at line 136 of file frequencysegment.h.

◆ FrequencySet

using EMANE::FrequencySet = typedef std::set<std::uint64_t>

Definition at line 44 of file spectrumserviceprovider.h.

◆ LayerConfigurations

using EMANE::LayerConfigurations = typedef std::list<LayerConfiguration *>

Definition at line 46 of file nemconfiguration.h.

◆ LayerConfigurationsIter

using EMANE::LayerConfigurationsIter = typedef LayerConfigurations::iterator

Definition at line 47 of file nemconfiguration.h.

◆ LayerFactoryManagerSingleton

◆ LengthPrefix

using EMANE::LengthPrefix = typedef std::uint16_t

Definition at line 62 of file types.h.

◆ LogServiceSingleton

Definition at line 117 of file logservice.h.

◆ MACLayerFactory

Definition at line 51 of file layerfactorymanager.h.

◆ Microseconds

using EMANE::Microseconds = typedef std::chrono::microseconds

Definition at line 45 of file types.h.

◆ Milliseconds

using EMANE::Milliseconds = typedef std::chrono::milliseconds

Definition at line 44 of file types.h.

◆ Nanoseconds

using EMANE::Nanoseconds = typedef std::chrono::nanoseconds

Definition at line 46 of file types.h.

◆ NEMConfigurations

using EMANE::NEMConfigurations = typedef std::list<NEMConfiguration*>

Definition at line 45 of file platformconfiguration.h.

◆ NEMId

using EMANE::NEMId = typedef std::uint16_t

Definition at line 52 of file types.h.

◆ NEMLayerComponentBuildIdMap

using EMANE::NEMLayerComponentBuildIdMap = typedef std::map<NEMId,std::vector<std::tuple<BuildId, ComponentType,std::string> >>

Definition at line 53 of file buildidservice.h.

◆ NEMLayerStateConfiguredSingleton

◆ NEMLayerStateDestroyedSingleton

◆ NEMLayerStateInitializedSingleton

◆ NEMLayerStateRunningSingleton

◆ NEMLayerStateStoppedSingleton

◆ NEMLayerStateUninitializedSingleton

◆ OTAManagerSingleton

Definition at line 111 of file otamanager.h.

◆ PlatformId

using EMANE::PlatformId = typedef std::uint16_t

Definition at line 56 of file types.h.

◆ Priority

using EMANE::Priority = typedef std::uint8_t

Definition at line 64 of file types.h.

◆ RegistrationId

using EMANE::RegistrationId = typedef std::uint16_t

Definition at line 59 of file types.h.

◆ Seconds

using EMANE::Seconds = typedef std::chrono::seconds

Definition at line 43 of file types.h.

◆ Serialization

using EMANE::Serialization = typedef std::string

Definition at line 42 of file serializable.h.

◆ ShimLayerFactory

◆ SpectrumWindow

using EMANE::SpectrumWindow = typedef std::tuple<std::vector<double>,TimePoint,Microseconds,double,bool>

Spectrum window snapshot

Parameters
std::vector<double>A vector of binned signal energy in mW
TimePointTime corresponding to the first bin
MicrosecondsThe bin duration
doubleThe receiver sensitivity in mW
boolFlag indicating whether the in-band signal is contained in the binned power values
Note
If you remove the in-band signal from a bin and the remaining bin energy is 0 mW you need to use the receiver sensitivity for the bin value. You cannot have less than receiver sensitivity in any bin.
See also
Utils::maxBinNoiseFloor

Definition at line 62 of file spectrumserviceprovider.h.

◆ StatisticManifest

typedef std::vector< StatisticInfo > EMANE::StatisticManifest

Definition at line 52 of file statisticservice.h.

◆ StatisticServiceSingleton

Definition at line 135 of file statisticservice.h.

◆ StatisticTableLabels

using EMANE::StatisticTableLabels = typedef std::vector<std::string>

Definition at line 44 of file statistictablepublisher.h.

◆ StatisticTableManifest

Definition at line 54 of file statisticservice.h.

◆ StatisticTableValues

using EMANE::StatisticTableValues = typedef std::vector<std::vector<Any> >

Definition at line 42 of file statistictablepublisher.h.

◆ Strings

using EMANE::Strings = typedef std::list<std::string>

Definition at line 66 of file types.h.

◆ TimePoint

using EMANE::TimePoint = typedef Clock::time_point

Definition at line 50 of file types.h.

◆ TimerEventId

using EMANE::TimerEventId = typedef std::size_t

Definition at line 54 of file types.h.

◆ TimerServiceSingleton

Definition at line 100 of file timerservice.h.

◆ Transmitters

using EMANE::Transmitters = typedef std::list<Transmitter>

Definition at line 85 of file transmitter.h.

◆ TransportFactoryManagerSingleton

◆ TransportInstanceConfigurations

Enumeration Type Documentation

◆ ANTENNA_MODE

Antenna Mode.

Enumerator
ANTENNA_MODE_NONE 

Antenna mode NONE (undefined)

ANTENNA_MODE_FIXED 

Antenna mode fixed

ANTENNA_MODE_PROFILE 

Antenna mode profile

Definition at line 41 of file antennamode.h.

◆ ComponentType

Enumerator
COMPONENT_ALL 

All NEM components

COMPONENT_PHYLAYER 

Concreate PHY layer internal to the NEM

COMPONENT_PHYILAYER 

PHY layer implementation

COMPONENT_MACLAYER 

Concreate MAC layer internal to the NEM

COMPONENT_MACILAYER 

MAC layer implementation

COMPONENT_SHIMLAYER 

Concreate Shim layer internal to the NEM

COMPONENT_SHIMILAYER 

Shim layer implementation

COMPONENT_TRANSPORTLAYER 

Concreate transport layer

COMPONENT_TRANSPORTILAYER 

Transport layer implementation

COMPONENT_GENERATORLAYER 

Concreate generator layer

COMPONENT_GENERATORILAYER 

Generator layer implementation

COMPONENT_EVENTAGENTLAYER 

Concreate agent layer

COMPONENT_EVENTAGENTILAYER 

Agent layer implementation

Definition at line 39 of file componenttypes.h.

◆ ConfigurationProperties

Enumerator
NONE 
REQUIRED 
DEFAULT 
MODIFIABLE 

Definition at line 38 of file configurationproperties.h.

◆ LogLevel

Enumerator
NOLOG_LEVEL 

No Logging

ABORT_LEVEL 

Abort message - unrecoverable application failure

ERROR_LEVEL 

Error message - recoverable application error

INFO_LEVEL 

Info message - informational messages

DEBUG_LEVEL 

Debug message - general application debugging

Definition at line 43 of file logserviceprovider.h.

◆ StatisticProperties

Enumerator
NONE 
CLEARABLE 

Definition at line 38 of file statisticproperties.h.

Function Documentation

◆ __attribute__()

struct EMANE::ControlMessageHeader EMANE::__attribute__ ( (packed)  )

◆ anyTypeAsString()

std::string EMANE::anyTypeAsString ( const Any::Type type)

Definition at line 551 of file any.cc.

◆ convertLogLevel() [1/2]

EMANEMessage::LoggerMessage_LogLevel EMANE::convertLogLevel ( EMANE::LogLevel  level)
inline

Definition at line 33 of file loggerlevelconvert.inl.

◆ convertLogLevel() [2/2]

EMANE::LogLevel EMANE::convertLogLevel ( EMANEMessage::LoggerMessage_LogLevel  level)
inline

Definition at line 52 of file loggerlevelconvert.inl.

◆ HTONL()

constexpr std::uint32_t EMANE::HTONL ( std::uint32_t  x)

Definition at line 103 of file net.h.

◆ HTONLL()

constexpr std::uint64_t EMANE::HTONLL ( std::uint64_t  x)

Definition at line 81 of file net.h.

◆ HTONS()

constexpr std::uint16_t EMANE::HTONS ( std::uint16_t  x)

Definition at line 125 of file net.h.

◆ makeException()

template<typename T , std::size_t len = 1024>
T EMANE::makeException ( const char *  fmt,
  ... 
)

Makes an exception using a printf style description

Template Parameters
TType derived from Exception
lenMaximum length of message
Parameters
fmtformat string (see printf)
...Variable data (see printf)
Returns
Newly created exception

Definition at line 100 of file exception.h.

◆ NetAdapterControlMessageToHost()

NetAdapterControlMessage* EMANE::NetAdapterControlMessageToHost ( NetAdapterControlMessage ctrl)
inline

Definition at line 114 of file netadaptermessage.h.

◆ NetAdapterControlMessageToNet()

NetAdapterControlMessage* EMANE::NetAdapterControlMessageToNet ( NetAdapterControlMessage ctrl)
inline

Definition at line 121 of file netadaptermessage.h.

◆ NetAdapterDataMessageToHost()

NetAdapterDataMessage* EMANE::NetAdapterDataMessageToHost ( NetAdapterDataMessage pkt)
inline

converts netadapter data message from network to host byte order.

Definition at line 133 of file netadaptermessage.h.

◆ NetAdapterDataMessageToNet()

NetAdapterDataMessage* EMANE::NetAdapterDataMessageToNet ( NetAdapterDataMessage pkt)
inline

converts netadapter data message from host to network byte order.

Definition at line 149 of file netadaptermessage.h.

◆ NetAdapterHeaderToHost()

NetAdapterHeader* EMANE::NetAdapterHeaderToHost ( NetAdapterHeader pMsg)
inline

Convert a NetAdapterHeader to host byte order

Parameters
pMsgMessage header reference
Returns
Message header reference. Same as pMsg.

Definition at line 64 of file netadaptermessage.h.

◆ NetAdapterHeaderToNet()

NetAdapterHeader* EMANE::NetAdapterHeaderToNet ( NetAdapterHeader pMsg)
inline

Convert a NetAdapterHeader to network byte order

Parameters
pMsgMessage header reference
Returns
Message header reference. Same as pMsg.

Definition at line 79 of file netadaptermessage.h.

◆ NTOHL()

constexpr std::uint32_t EMANE::NTOHL ( std::uint32_t  x)

Definition at line 114 of file net.h.

◆ NTOHLL()

constexpr std::uint64_t EMANE::NTOHLL ( std::uint64_t  x)

Definition at line 92 of file net.h.

◆ NTOHS()

constexpr std::uint16_t EMANE::NTOHS ( std::uint16_t  x)

Definition at line 136 of file net.h.

◆ operator &() [1/2]

constexpr StatisticProperties EMANE::operator& ( StatisticProperties  a,
StatisticProperties  b 
)

Definition at line 49 of file statisticproperties.h.

◆ operator &() [2/2]

constexpr ConfigurationProperties EMANE::operator& ( ConfigurationProperties  a,
ConfigurationProperties  b 
)

Definition at line 51 of file configurationproperties.h.

◆ operator|() [1/2]

constexpr StatisticProperties EMANE::operator| ( StatisticProperties  a,
StatisticProperties  b 
)

Definition at line 44 of file statisticproperties.h.

◆ operator|() [2/2]

constexpr ConfigurationProperties EMANE::operator| ( ConfigurationProperties  a,
ConfigurationProperties  b 
)

Definition at line 46 of file configurationproperties.h.

Variable Documentation

◆ __attribute__

struct EMANE::NetAdapterControlMessage EMANE::__attribute__

◆ ARC_SECONDS_PER_DEGREE

const double EMANE::ARC_SECONDS_PER_DEGREE {3600.0}

Definition at line 46 of file constants.h.

◆ DBM_MAX

const float EMANE::DBM_MAX = {327.0f}

Definition at line 40 of file constants.h.

◆ DBM_MIN

const float EMANE::DBM_MIN = {-327.0f}

Definition at line 39 of file constants.h.

◆ ECC2

const double EMANE::ECC2 {(SEMI_MAJOR_2 - SEMI_MINOR_2) / SEMI_MAJOR_2}

Definition at line 55 of file constants.h.

◆ MILLI_ARC_SECONDS_PER_DEGREE

const double EMANE::MILLI_ARC_SECONDS_PER_DEGREE {3600.0e3}

Definition at line 49 of file constants.h.

◆ NEM_BROADCAST_MAC_ADDRESS

constexpr NEMId EMANE::NEM_BROADCAST_MAC_ADDRESS {std::numeric_limits<NEMId>::max()}

Definition at line 69 of file types.h.

◆ NETADAPTER_BROADCAST_ADDRESS

const std::uint16_t EMANE::NETADAPTER_BROADCAST_ADDRESS = 0xFFFF

definition of the broadcast address used between network adapter and nem.

Definition at line 165 of file netadaptermessage.h.

◆ NETADAPTER_CTRL_MSG

const std::uint16_t EMANE::NETADAPTER_CTRL_MSG = 2

Definition at line 42 of file netadaptermessage.h.

◆ NETADAPTER_DATA_MSG

const std::uint16_t EMANE::NETADAPTER_DATA_MSG = 1

Definition at line 41 of file netadaptermessage.h.

◆ REGISTERED_EMANE_MAC_BYPASS

const RegistrationId EMANE::REGISTERED_EMANE_MAC_BYPASS = 0x0001

Definition at line 50 of file mactypes.h.

◆ REGISTERED_EMANE_MAC_IEEE_802_11_ABG

const RegistrationId EMANE::REGISTERED_EMANE_MAC_IEEE_802_11_ABG = 0x0003

Definition at line 60 of file mactypes.h.

◆ REGISTERED_EMANE_MAC_LEGACY_802_11

const RegistrationId EMANE::REGISTERED_EMANE_MAC_LEGACY_802_11 = 0x0002

Definition at line 55 of file mactypes.h.

◆ REGISTERED_EMANE_MAC_RF_PIPE

const RegistrationId EMANE::REGISTERED_EMANE_MAC_RF_PIPE = 0x0004

Definition at line 65 of file mactypes.h.

◆ REGISTERED_EMANE_MAC_TDMA

const RegistrationId EMANE::REGISTERED_EMANE_MAC_TDMA = 0x0005

Definition at line 70 of file mactypes.h.

◆ REGISTERED_EMANE_PHY_BYPASS

const RegistrationId EMANE::REGISTERED_EMANE_PHY_BYPASS = 0x0001

Definition at line 49 of file phytypes.h.

◆ REGISTERED_EMANE_PHY_COMM_EFFECT

const RegistrationId EMANE::REGISTERED_EMANE_PHY_COMM_EFFECT = 0x0005

Definition at line 77 of file phytypes.h.

◆ REGISTERED_EMANE_PHY_FRAMEWORK

const RegistrationId EMANE::REGISTERED_EMANE_PHY_FRAMEWORK = 0x0007

Definition at line 90 of file phytypes.h.

◆ SEMI_MAJOR

const double EMANE::SEMI_MAJOR {6378137.0}

Definition at line 51 of file constants.h.

◆ SEMI_MAJOR_2

const double EMANE::SEMI_MAJOR_2 {SEMI_MAJOR * SEMI_MAJOR}

Definition at line 53 of file constants.h.

◆ SEMI_MINOR

const double EMANE::SEMI_MINOR {6356752.3142}

Definition at line 52 of file constants.h.

◆ SEMI_MINOR_2

const double EMANE::SEMI_MINOR_2 {SEMI_MINOR * SEMI_MINOR}

Definition at line 54 of file constants.h.

◆ SOL_MPS

const double EMANE::SOL_MPS {299792458.0}

Definition at line 58 of file constants.h.

◆ THERMAL_NOISE_DB

const double EMANE::THERMAL_NOISE_DB {-174.0}

Definition at line 42 of file constants.h.

◆ USEC_PER_SEC_F

const float EMANE::USEC_PER_SEC_F {1.0e6}

Definition at line 61 of file constants.h.