EMANE
1.2.1
|
Classes | |
class | BitPool |
Implementation of a rate limiting bit pool. More... | |
class | CommonLayerStatistics |
Common NEM layer statistics and drop reason tables. More... | |
union | EtherAddr |
Definition of the ethernet frame address as an array of 6 bytes or set of 3 words. More... | |
struct | EtherAddrBytes |
Definition of the ethernet frame address as an array of 6 bytes. More... | |
struct | EtherAddrWords |
Definition of the ethernet frame address as a set of 3 words. More... | |
struct | EtherArpHeader |
Definition of the ethernet arp header. More... | |
struct | EtherHeader |
Definition of the ethernet frame header. More... | |
class | FactoryException |
Exception thrown during the creation of a layer factory. More... | |
struct | Ip4Header |
Definition of the IPv4 header. More... | |
struct | Ip6Header |
Definition of the IPv6 header. More... | |
struct | IP6ICMPHeader |
Definition of the IPv6 ICMP header. More... | |
class | ParameterConvert |
Parameter conversion class with range checks. More... | |
class | RandomNumberDistribution |
A utility wrapper around a generator and a distribution. More... | |
class | RunningAverage |
A running average statistic wrapper. More... | |
class | Singleton |
Ensure a class only has one instance, and provide a global point of access to it. More... | |
class | StatisticHistogramTable |
Utility class to make a two column statistic table where the first column is the table key and the second column is a count of key instances. More... | |
class | Timer |
A timer class that uses Linux interval timers. More... | |
struct | UdpHeader |
Definition of the UDP header. More... | |
Typedefs | |
using | SpectrumCompressedRepresentation = std::vector< std::pair< std::size_t, float > > |
typedef std::vector< iovec > | VectorIO |
Functions | |
std::tuple< double, double, double > | calculateDirection (const PositionOrientationVelocity &localLocationInfo, const PositionNEU &localAntennaPositionNEU, const PositionOrientationVelocity &remoteLocationInfo, const PositionNEU &remoteAntennaPositionNEU) |
std::pair< double, double > | calculateLookupAngles (double dAzReference, double dAzPointing, double dElReference, double dElPointing) |
bool | checkHorizon (const double dHeightMeters1, const double dHeightMeters2, const double dDistanceMeters) |
double | NORMALIZE_VECTOR (const double x, const double y, const double z) |
double | DEGREES_TO_RADIANS (const double deg) |
void | AI_TO_BE_DEGREES (double &val, const double A, const double B) |
void | AI_TO_BI_DEGREES (double &val, const double A, const double B) |
void | NEG_90_TO_POS_90_DEGREES (double &val) |
double | MILLIWATT_TO_DB (double dMillWatt) |
double | DB_TO_MILLIWATT (double ddB) |
struct EMANE::Utils::UdpHeader | __attribute__ ((packed)) |
std::uint8_t | get_ip_version (std::uint8_t vhl) |
std::uint8_t | get_ip_hdrlen (std::uint8_t vhl) |
std::uint8_t | get_ip_dscp (std::uint8_t tos) |
std::uint8_t | get_ip_dscp (std::uint8_t ver, std::uint8_t clas) |
std::uint8_t | get_version (const Ip4Header *ip) |
std::uint8_t | get_hdrlen (const Ip4Header *ip) |
std::uint16_t | get_len (const Ip4Header *ip) |
std::uint8_t | get_dscp (const Ip4Header *ip) |
void | addr_to_string (const std::uint8_t *addr, size_t addrlen, const char *delim, char *buf, size_t buflen) |
std::uint8_t | get_version (const Ip6Header *ip) |
std::uint8_t | get_hdrlen (const Ip6Header *ip) |
std::uint16_t | get_len (const Ip6Header *ip) |
std::uint8_t | get_dscp (const Ip6Header *ip) |
const EtherAddr * | get_srcaddr (const EtherHeader *eth) |
const EtherAddr * | get_dstaddr (const EtherHeader *eth) |
std::uint16_t | get_protocol (const EtherHeader *eth) |
const char * | addr_to_string (const EtherAddr *addr) |
std::string | ethaddr_to_string (const EtherAddr *addr) |
std::uint16_t | get_hwtype (const EtherArpHeader *arp) |
std::uint16_t | get_protocol (const EtherArpHeader *arp) |
std::uint8_t | get_hwaddrlen (const EtherArpHeader *arp) |
std::uint8_t | get_protoaddrlen (const EtherArpHeader *arp) |
std::uint16_t | get_code (const EtherArpHeader *arp) |
const EtherAddr * | get_srchwaddr (const EtherArpHeader *arp) |
const EtherAddr * | get_dsthwaddr (const EtherArpHeader *arp) |
std::uint32_t | get_srcprotoaddr (const EtherArpHeader *arp) |
std::uint32_t | get_dstprotoaddr (const EtherArpHeader *arp) |
std::uint16_t | ethaddr4_to_id (const EtherAddr *addr) |
std::uint16_t | ethaddr6_to_id (const EtherAddr *addr) |
std::uint8_t | get_prefixlen (const in6_addr *prefix) |
std::uint16_t | inet_cksum (const void *buf, int buflen, std::uint16_t prev=0) |
std::string | formatFrequency (const std::uint64_t val, const int precision=6) |
returns a sting with the formatted value and suffix More... | |
std::vector< std::string > | getTokens (const std::string &sInput, const char *pzDelimeter) |
std::pair< double, bool > | maxBinNoiseFloorRange (const SpectrumWindow &window, double dRxPowerdBm, const TimePoint &startTime, const TimePoint &endTime=TimePoint::min()) |
std::pair< double, bool > | maxBinNoiseFloor (const SpectrumWindow &window, double dRxPowerdBm, const TimePoint &startTime=TimePoint::min()) |
std::pair< double, bool > | maxBinNoiseFloor (const std::vector< double > &noiseData, double dRxSensitivityMilliWatt, double dRxPowerdBm, bool bSignalInNoise, std::size_t startBin, std::size_t endBin) |
Microseconds::rep | timepointToAbsoluteBin (const TimePoint &timePoint, const Microseconds &binSize, bool bAdjust) |
SpectrumCompressedRepresentation | spectrumCompress (const std::vector< double > &window) |
iovec | make_iovec (void *base, std::size_t len) |
Variables | |
const std::uint8_t | IP_PROTO_UDP = 0x11 |
ip udp protocol More... | |
const std::uint16_t | UDP_HEADER_LEN = 8 |
udp header len More... | |
const std::uint16_t | IPV4_HEADER_LEN = 20 |
ipv4 header len without options More... | |
const std::uint16_t | IPV4_ADDR_LEN = 4 |
ipv4 addr len More... | |
const std::uint16_t | IPV6_ADDR_LEN = 16 |
ipv6 addr len More... | |
const std::uint8_t | IPV6_P_ICMP = 0x3A |
IPv6 ICMP Protocol. More... | |
const std::uint16_t | IPV6_HEADER_LEN = 40 |
ipv6 header len More... | |
const std::uint16_t | IPV6_MAX_BIT_LEN = 128 |
ipv6 max addr len More... | |
const std::uint16_t | ETH_ALEN = 6 |
Ethernet hardware address length. More... | |
const std::uint16_t | ETH_HEADER_LEN = 14 |
Ethernet header length. More... | |
const std::uint16_t | ETHARP_HEADER_LEN = 28 |
Ethernet Arp header length. More... | |
const std::uint16_t | IP_MAX_PACKET = 0xFFFF |
Max ip packet len. More... | |
const std::uint16_t | ARPHRD_ETHER = 0x0001 |
Ethernet hardware type. More... | |
const std::uint16_t | ETH_P_IPV4 = 0x0800 |
Ethernet ipv4 protocol. More... | |
const std::uint16_t | ETH_P_ARP = 0x0806 |
Ethernet arp protocol. More... | |
const std::uint16_t | ETH_P_IPV6 = 0x86DD |
Ethernet ipv6 protocol. More... | |
const std::uint16_t | ETH_ARPOP_REQUEST = 0x0001 |
Ethernet arp request. More... | |
const std::uint16_t | ETH_ARPOP_REPLY = 0x0002 |
Ethernet arp reply. More... | |
const std::uint8_t | IP6_ICMP_NEIGH_SOLICIT = 135 |
IPv6 ICMP Neighbor Soliciation. More... | |
const std::uint8_t | IP6_ICMP_NEIGH_ADVERT = 136 |
IPv6 ICMP Neighbor Advertisement. More... | |
using EMANE::Utils::SpectrumCompressedRepresentation = typedef std::vector<std::pair<std::size_t,float> > |
Definition at line 126 of file spectrumwindowutils.h.
typedef std::vector<iovec> EMANE::Utils::VectorIO |
Definition at line 43 of file vectorio.h.
struct EMANE::Utils::IP6ICMPHeader EMANE::Utils::__attribute__ | ( | (packed) | ) |
|
inline |
addr | pointer to the address buffer |
addrlen | length of the address buffer |
delim | the requested delimeter |
buf | the buffer to write the formatted output to |
buflen | the length of the output buffer |
Definition at line 248 of file netutils.h.
|
inline |
addr | a pointer to an EtherAddr |
Definition at line 490 of file netutils.h.
|
inline |
Definition at line 56 of file conversionutils.h.
|
inline |
Definition at line 77 of file conversionutils.h.
|
inline |
Definition at line 49 of file positionutils.h.
|
inline |
Definition at line 130 of file positionutils.h.
|
inline |
Definition at line 154 of file positionutils.h.
|
inline |
Definition at line 119 of file conversionutils.h.
|
inline |
Definition at line 50 of file conversionutils.h.
|
inline |
addr | a pointer to an ipv4 EtherAddr |
Definition at line 688 of file netutils.h.
|
inline |
addr | a pointer to an ipv6 EtherAddr |
Definition at line 722 of file netutils.h.
|
inline |
addr | a pointer to an EtherAddr |
Definition at line 508 of file netutils.h.
|
inline |
returns a sting with the formatted value and suffix
val | the frequency in Hz |
precision | the format precision |
Definition at line 849 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 602 of file netutils.h.
|
inline |
ip | pointer to an ipv4 header |
Definition at line 233 of file netutils.h.
|
inline |
Definition at line 323 of file netutils.h.
|
inline |
eth | a pointer to an EtherHeader |
Definition at line 462 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 630 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 657 of file netutils.h.
|
inline |
ip | pointer to an ipv4 header |
Definition at line 205 of file netutils.h.
|
inline |
Definition at line 311 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 575 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 547 of file netutils.h.
|
inline |
tos | ip tos value |
Definition at line 111 of file netutils.h.
|
inline |
ver | ip version |
clas | ip traffic class |
Definition at line 126 of file netutils.h.
|
inline |
vhl | ip version/header len value |
Definition at line 97 of file netutils.h.
|
inline |
vhl | ip version/header len value |
Definition at line 85 of file netutils.h.
|
inline |
ip | pointer to an ipv4 header |
Definition at line 219 of file netutils.h.
|
inline |
Definition at line 317 of file netutils.h.
|
inline |
prefix | a pointer to a inet 6 address |
Definition at line 755 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 589 of file netutils.h.
|
inline |
eth | a pointer to an EtherHeader |
Definition at line 475 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 561 of file netutils.h.
|
inline |
eth | a pointer to an EtherHeader |
Definition at line 449 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 616 of file netutils.h.
|
inline |
arp | a pointer to an EtherArpHeader |
Definition at line 643 of file netutils.h.
|
inline |
ip | pointer to an ipv4 header |
Definition at line 191 of file netutils.h.
|
inline |
Definition at line 305 of file netutils.h.
|
inline |
Definition at line 881 of file netutils.h.
|
inline |
buf | pointer to data buffer |
buflen | length of buffer |
prev | running sum |
Definition at line 792 of file netutils.h.
|
inline |
Definition at line 46 of file vectorio.h.
std::pair< double, bool > EMANE::Utils::maxBinNoiseFloor | ( | const SpectrumWindow & | window, |
double | dRxPowerdBm, | ||
const TimePoint & | startTime = TimePoint::min() |
||
) |
Gets the noise floor for a given start time and spectrum window using the maximum bin power.
window | Spectrum window to analyze |
dRxPowerdBm | Signal power level in dBm |
startTime | Start time. The default value indicates start of the window. |
SpectrumServiceException | when an error is detected with one or more input parameters. |
Definition at line 80 of file spectrumwindowutils.cc.
std::pair< double, bool > EMANE::Utils::maxBinNoiseFloor | ( | const std::vector< double > & | noiseData, |
double | dRxSensitivityMilliWatt, | ||
double | dRxPowerdBm, | ||
bool | bSignalInNoise, | ||
std::size_t | startBin, | ||
std::size_t | endBin | ||
) |
Gets the noise floor for a given start and end bin index and spectrum window bin data using the maximum bin power.
noiseData | Spectrum window bin data to analyze |
dRxSensitivityMilliWatt | Receiver sensitivity in mW |
dRxPowerdBm | Signal power level in dBm |
bSignalInNoise | Flag indicating whether in-band signal is in the window |
startBin | Start bin index |
endBin | End bin index |
SpectrumServiceException | when an error is detected with one or more input parameters. |
Definition at line 112 of file spectrumwindowutils.cc.
std::pair< double, bool > EMANE::Utils::maxBinNoiseFloorRange | ( | const SpectrumWindow & | window, |
double | dRxPowerdBm, | ||
const TimePoint & | startTime, | ||
const TimePoint & | endTime = TimePoint::min() |
||
) |
Gets the noise floor for a given time range and spectrum window using the maximum bin power within the range.
window | Spectrum window to analyze |
dRxPowerdBm | Signal power level in dBm |
startTime | Start time of the range |
endTime | End time of the range. The default value indicates the entire window. |
SpectrumServiceException | when an error is detected with one or more input parameters. |
Definition at line 40 of file spectrumwindowutils.cc.
|
inline |
Definition at line 114 of file conversionutils.h.
|
inline |
Definition at line 98 of file conversionutils.h.
|
inline |
Definition at line 44 of file conversionutils.h.
EMANE::Utils::SpectrumCompressedRepresentation EMANE::Utils::spectrumCompress | ( | const std::vector< double > & | window | ) |
Compresses spectrum window data into a smaller format.
window | A vector of spectrum window data |
Compression format consists of wheel-index wheel-value pairs where:
Examples if the wheel contained 100 values and:
Definition at line 164 of file spectrumwindowutils.cc.
EMANE::Microseconds::rep EMANE::Utils::timepointToAbsoluteBin | ( | const TimePoint & | timePoint, |
const Microseconds & | binSize, | ||
bool | bAdjust | ||
) |
Gets the absolute bin of a specified time point from the epoch.
timePoint | Desired time |
binSize | FrameworkPHY bin size |
bAdjust | Flag that when true adjusts to the previous bin if the time falls on a bin boundary |
Definition at line 151 of file spectrumwindowutils.cc.
const std::uint16_t EMANE::Utils::ARPHRD_ETHER = 0x0001 |
Ethernet hardware type.
Definition at line 366 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_ALEN = 6 |
Ethernet hardware address length.
Definition at line 335 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_ARPOP_REPLY = 0x0002 |
Ethernet arp reply.
Definition at line 676 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_ARPOP_REQUEST = 0x0001 |
Ethernet arp request.
Definition at line 668 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_HEADER_LEN = 14 |
Ethernet header length.
Definition at line 343 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_P_ARP = 0x0806 |
Ethernet arp protocol.
Definition at line 382 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_P_IPV4 = 0x0800 |
Ethernet ipv4 protocol.
Definition at line 374 of file netutils.h.
const std::uint16_t EMANE::Utils::ETH_P_IPV6 = 0x86DD |
Ethernet ipv6 protocol.
Definition at line 389 of file netutils.h.
const std::uint16_t EMANE::Utils::ETHARP_HEADER_LEN = 28 |
Ethernet Arp header length.
Definition at line 351 of file netutils.h.
const std::uint8_t EMANE::Utils::IP6_ICMP_NEIGH_ADVERT = 136 |
IPv6 ICMP Neighbor Advertisement.
Definition at line 839 of file netutils.h.
const std::uint8_t EMANE::Utils::IP6_ICMP_NEIGH_SOLICIT = 135 |
IPv6 ICMP Neighbor Soliciation.
Definition at line 832 of file netutils.h.
const std::uint16_t EMANE::Utils::IP_MAX_PACKET = 0xFFFF |
Max ip packet len.
Definition at line 358 of file netutils.h.
const std::uint8_t EMANE::Utils::IP_PROTO_UDP = 0x11 |
ip udp protocol
Definition at line 68 of file netutils.h.
const std::uint16_t EMANE::Utils::IPV4_ADDR_LEN = 4 |
ipv4 addr len
Definition at line 166 of file netutils.h.
const std::uint16_t EMANE::Utils::IPV4_HEADER_LEN = 20 |
ipv4 header len without options
Definition at line 158 of file netutils.h.
const std::uint16_t EMANE::Utils::IPV6_ADDR_LEN = 16 |
ipv6 addr len
Definition at line 174 of file netutils.h.
const std::uint16_t EMANE::Utils::IPV6_HEADER_LEN = 40 |
ipv6 header len
Definition at line 293 of file netutils.h.
const std::uint16_t EMANE::Utils::IPV6_MAX_BIT_LEN = 128 |
ipv6 max addr len
Definition at line 300 of file netutils.h.
const std::uint8_t EMANE::Utils::IPV6_P_ICMP = 0x3A |
IPv6 ICMP Protocol.
Definition at line 181 of file netutils.h.
const std::uint16_t EMANE::Utils::UDP_HEADER_LEN = 8 |
udp header len
Definition at line 75 of file netutils.h.