ns3::OutputManager class

The OutputManager interface for storing the simulation data.

The class is born with the objective of providing an unified interface to an output device. The class is optimized for the need of the examples provided in the nr-u module, but it can be extended to support more traces.

The idea here is that the methods here should be connected to the right trace sources, so that every time it fires, a value is written in the output device. We support functions to write the SINR of a packet, the number of bytes which failed at MAC level, the occupancy rate, and the e2e statistics. Then, we also support the number of times that two technologies occupied the channel at the same time.

Please remember to correctly close the output manager by calling Close().

Derived classes

class FileOutputManager
Store the values in files.
class SqliteOutputManager
Output manager that stores data in a database.

Constructors, destructors, conversion operators

~OutputManager() virtual
OutputManager destructor.

Public functions

void Close() pure virtual
Correctly close the output manager.
void MacDataTxFailed(uint32_t nodeId, uint32_t bytes) pure virtual
Store the transmission failed at MAC level.
void SimultaneousTxOtherTechnology(uint32_t nodeId) pure virtual
Indicates that there is a simultaneuous transmission with another technology.
void SinrStore(uint32_t nodeId, double sinr) pure virtual
Store a SINR value.
void StoreChannelOccupancyRateFor(const std::string& technology, double value) pure virtual
Store the Technology occupancy rate.
void StoreE2EStatsFor(const std::string& technology, double throughput, uint32_t txBytes, uint32_t rxBytes, double meanDelay, double meanJitter, const std::string& addr) pure virtual
Store the E2E stats.

Function documentation

void ns3::OutputManager::MacDataTxFailed(uint32_t nodeId, uint32_t bytes) pure virtual

Store the transmission failed at MAC level.

Parameters
nodeId Node id
bytes Bytes that failed at MAC level

void ns3::OutputManager::SimultaneousTxOtherTechnology(uint32_t nodeId) pure virtual

Indicates that there is a simultaneuous transmission with another technology.

Parameters
nodeId ID of the node

Each call to this method will be counted as one simultaneous transmission.

void ns3::OutputManager::SinrStore(uint32_t nodeId, double sinr) pure virtual

Store a SINR value.

Parameters
nodeId Node id
sinr Value of SINR in dB

void ns3::OutputManager::StoreChannelOccupancyRateFor(const std::string& technology, double value) pure virtual

Store the Technology occupancy rate.

Parameters
technology name of the technology
value Channel occupancy rate (between 0 and 1)

void ns3::OutputManager::StoreE2EStatsFor(const std::string& technology, double throughput, uint32_t txBytes, uint32_t rxBytes, double meanDelay, double meanJitter, const std::string& addr) pure virtual

Store the E2E stats.

Parameters
technology Technology name
throughput throughput
txBytes Transmitted bytes
rxBytes Received bytes
meanDelay Average delay (per packet)
meanJitter Average jitter (per packet)
addr Destination address