A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::RadioBearerStatsCalculator Class Reference

#include <radio-bearer-stats-calculator.h>

+ Inheritance diagram for ns3::RadioBearerStatsCalculator:

Public Member Functions

 RadioBearerStatsCalculator ()
 
 RadioBearerStatsCalculator (std::string protocolType)
 
virtual ~RadioBearerStatsCalculator ()
 
void DlRxPdu (uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
 
void DlTxPdu (uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
 
void DoDispose ()
 
uint32_t GetDlCellId (uint64_t imsi, uint8_t lcid)
 
double GetDlDelay (uint64_t imsi, uint8_t lcid)
 
std::vector< double > GetDlDelayStats (uint64_t imsi, uint8_t lcid)
 
std::string GetDlOutputFilename (void)
 
std::string GetDlPdcpOutputFilename (void)
 
std::vector< double > GetDlPduSizeStats (uint64_t imsi, uint8_t lcid)
 
uint64_t GetDlRxData (uint64_t imsi, uint8_t lcid)
 
uint32_t GetDlRxPackets (uint64_t imsi, uint8_t lcid)
 
uint64_t GetDlTxData (uint64_t imsi, uint8_t lcid)
 
uint32_t GetDlTxPackets (uint64_t imsi, uint8_t lcid)
 
Time GetEpoch () const
 
Time GetStartTime () const
 
uint32_t GetUlCellId (uint64_t imsi, uint8_t lcid)
 
double GetUlDelay (uint64_t imsi, uint8_t lcid)
 
std::vector< double > GetUlDelayStats (uint64_t imsi, uint8_t lcid)
 
std::string GetUlOutputFilename (void)
 
std::string GetUlPdcpOutputFilename (void)
 
std::vector< double > GetUlPduSizeStats (uint64_t imsi, uint8_t lcid)
 
uint64_t GetUlRxData (uint64_t imsi, uint8_t lcid)
 
uint32_t GetUlRxPackets (uint64_t imsi, uint8_t lcid)
 
uint64_t GetUlTxData (uint64_t imsi, uint8_t lcid)
 
uint32_t GetUlTxPackets (uint64_t imsi, uint8_t lcid)
 
void SetDlPdcpOutputFilename (std::string outputFilename)
 
void SetEpoch (Time e)
 
void SetStartTime (Time t)
 
void SetUlPdcpOutputFilename (std::string outputFilename)
 
void UlRxPdu (uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
 
void UlTxPdu (uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
 
- Public Member Functions inherited from ns3::LteStatsCalculator
 LteStatsCalculator ()
 
virtual ~LteStatsCalculator ()
 
bool ExistsCellIdPath (std::string path)
 
bool ExistsImsiPath (std::string path)
 
uint16_t GetCellIdPath (std::string path)
 
std::string GetDlOutputFilename (void)
 
uint64_t GetImsiPath (std::string path)
 
std::string GetUlOutputFilename (void)
 
void SetCellIdPath (std::string path, uint16_t cellId)
 
void SetDlOutputFilename (std::string outputFilename)
 
void SetImsiPath (std::string path, uint64_t imsi)
 
void SetUlOutputFilename (std::string outputFilename)
 
- Public Member Functions inherited from ns3::Object
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::LteStatsCalculator
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Member Functions

void EndEpoch (void)
 
void RescheduleEndEpoch ()
 
void ResetResults (void)
 
void ShowResults (void)
 
void WriteDlResults (std::ofstream &outFile)
 
void WriteUlResults (std::ofstream &outFile)
 

Private Attributes

Uint32Map m_dlCellId
 
Uint64StatsMap m_dlDelay
 
std::string m_dlPdcpOutputFilename
 
Uint32StatsMap m_dlPduSize
 
Uint64Map m_dlRxData
 
Uint32Map m_dlRxPackets
 
Uint64Map m_dlTxData
 
Uint32Map m_dlTxPackets
 
EventId m_endEpochEvent
 
Time m_epochDuration
 
bool m_firstWrite
 
FlowIdMap m_flowId
 
bool m_pendingOutput
 
std::string m_protocolType
 
Time m_startTime
 
Uint32Map m_ulCellId
 
Uint64StatsMap m_ulDelay
 
std::string m_ulPdcpOutputFilename
 
Uint32StatsMap m_ulPduSize
 
Uint64Map m_ulRxData
 
Uint32Map m_ulRxPackets
 
Uint64Map m_ulTxData
 
Uint32Map m_ulTxPackets
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

This class is an ns-3 trace sink that performs the calculation of PDU statistics for uplink and downlink. Statistics are generated on a per radio bearer basis. This class can be used for RLC PDU stats or PDCP PDU stats by connecting to the appropriate trace sources at the RLC or PDCP layer.

The statistics are calculated at consecutive time windows and periodically written to a file. The calculated statistics are:

  • Number of transmitted PDUs
  • Number of received PDUs
  • Number of transmitted bytes
  • Number of received bytes
  • Average, min, max and standard deviation of PDU delay (delay is calculated from the generation of the PDU to its reception)
  • Average, min, max and standard deviation of PDU size

Doxygen introspection did not find any typical Config paths.

Attributes

  • StartTime: Start time of the on going epoch.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read
  • EpochDuration: Epoch duration.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +250000000.0ns
    • Flags: construct write read
  • DlRlcOutputFilename: Name of the file where the downlink results will be saved.
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: DlRlcStats.txt
    • Flags: construct write
  • UlRlcOutputFilename: Name of the file where the uplink results will be saved.
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: UlRlcStats.txt
    • Flags: construct write
  • DlPdcpOutputFilename: Name of the file where the downlink results will be saved.
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: DlPdcpStats.txt
    • Flags: construct write
  • UlPdcpOutputFilename: Name of the file where the uplink results will be saved.
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: UlPdcpStats.txt
    • Flags: construct write

No TraceSources are defined for this type.

Definition at line 63 of file radio-bearer-stats-calculator.h.

Constructor & Destructor Documentation

ns3::RadioBearerStatsCalculator::RadioBearerStatsCalculator ( )

Class constructor

Definition at line 36 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

ns3::RadioBearerStatsCalculator::RadioBearerStatsCalculator ( std::string  protocolType)

Class constructor

Definition at line 44 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

ns3::RadioBearerStatsCalculator::~RadioBearerStatsCalculator ( )
virtual

Class destructor

Definition at line 52 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::RadioBearerStatsCalculator::DlRxPdu ( uint16_t  cellId,
uint64_t  imsi,
uint16_t  rnti,
uint8_t  lcid,
uint32_t  packetSize,
uint64_t  delay 
)

Notifies the stats calculator that an downlink reception has occurred.

Parameters
cellIdCellId of the attached Enb
imsiIMSI of the UE who received the PDU
rntiC-RNTI of the UE who received the PDU
lcidLCID through which the PDU has been transmitted
packetSizesize of the PDU in bytes
delayRLC to RLC delay in nanoseconds

Definition at line 189 of file radio-bearer-stats-calculator.cc.

References m_pendingOutput, m_startTime, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

void ns3::RadioBearerStatsCalculator::DlTxPdu ( uint16_t  cellId,
uint64_t  imsi,
uint16_t  rnti,
uint8_t  lcid,
uint32_t  packetSize 
)

Notifies the stats calculator that an downlink transmission has occurred.

Parameters
cellIdCellId of the attached Enb
imsiIMSI of the UE who is receiving the PDU
rntiC-RNTI of the UE who is receiving the PDU
lcidLCID through which the PDU has been transmitted
packetSizesize of the PDU in bytes

Definition at line 149 of file radio-bearer-stats-calculator.cc.

References m_pendingOutput, m_startTime, ns3::Simulator::Now(), and NS_LOG_FUNCTION.

void ns3::RadioBearerStatsCalculator::DoDispose ( void  )
virtual

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::Object.

Definition at line 98 of file radio-bearer-stats-calculator.cc.

References m_pendingOutput, and NS_LOG_FUNCTION.

uint32_t ns3::RadioBearerStatsCalculator::GetDlCellId ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the attached Enb cellId.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
Enb cellId

Definition at line 534 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

double ns3::RadioBearerStatsCalculator::GetDlDelay ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the downlink RLC to RLC delay

Parameters
imsiIMSI of the UE
lcidLCID
Returns
RLC to RLC delay in seconds

Definition at line 542 of file radio-bearer-stats-calculator.cc.

References NS_LOG_ERROR, and NS_LOG_FUNCTION.

std::vector< double > ns3::RadioBearerStatsCalculator::GetDlDelayStats ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the downlink RLC to RLC statistics: average, min, max and standard deviation.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
RLC to RLC delay statistics average, min, max and standard deviation in seconds

Definition at line 556 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

std::string ns3::RadioBearerStatsCalculator::GetDlOutputFilename ( void  )

Get the name of the file where the downlink statistics will be stored.

Definition at line 615 of file radio-bearer-stats-calculator.cc.

References ns3::LteStatsCalculator::GetDlOutputFilename(), and GetDlPdcpOutputFilename().

std::string ns3::RadioBearerStatsCalculator::GetDlPdcpOutputFilename ( void  )

Get the name of the file where the downlink PDCP statistics will be stored.

Definition at line 645 of file radio-bearer-stats-calculator.cc.

Referenced by GetDlOutputFilename().

std::vector< double > ns3::RadioBearerStatsCalculator::GetDlPduSizeStats ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the downlink PDU size statistics: average, min, max and standard deviation.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
PDU size statistics average, min, max and standard deviation in seconds

Definition at line 579 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint64_t ns3::RadioBearerStatsCalculator::GetDlRxData ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of received downlink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of received data bytes

Definition at line 518 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

Referenced by LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), and LenaTdMtFfMacSchedulerTestCase::DoRun().

uint32_t ns3::RadioBearerStatsCalculator::GetDlRxPackets ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of received downlink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of received data bytes

Definition at line 502 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint64_t ns3::RadioBearerStatsCalculator::GetDlTxData ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of transmitted downlink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of transmitted data bytes

Definition at line 510 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint32_t ns3::RadioBearerStatsCalculator::GetDlTxPackets ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of transmitted downlink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of transmitted data bytes

Definition at line 494 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

Time ns3::RadioBearerStatsCalculator::GetEpoch ( ) const
Returns
the epoch duration

Definition at line 128 of file radio-bearer-stats-calculator.cc.

References m_epochDuration.

Referenced by GetTypeId().

Time ns3::RadioBearerStatsCalculator::GetStartTime ( ) const
Returns
the value of the StartTime attribute

Definition at line 115 of file radio-bearer-stats-calculator.cc.

References m_startTime.

Referenced by GetTypeId().

uint32_t ns3::RadioBearerStatsCalculator::GetUlCellId ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the attached Enb cellId.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
Enb cellId

Definition at line 526 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

double ns3::RadioBearerStatsCalculator::GetUlDelay ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the uplink RLC to RLC delay

Parameters
imsiIMSI of the UE
lcidLCID
Returns
RLC to RLC delay in seconds

Definition at line 433 of file radio-bearer-stats-calculator.cc.

References NS_LOG_ERROR, and NS_LOG_FUNCTION.

std::vector< double > ns3::RadioBearerStatsCalculator::GetUlDelayStats ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the uplink RLC to RLC statistics: average, min, max and standard deviation.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
RLC to RLC delay statistics average, min, max and standard deviation in seconds

Definition at line 448 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

std::string ns3::RadioBearerStatsCalculator::GetUlOutputFilename ( void  )

Get the name of the file where the uplink statistics will be stored.

Definition at line 602 of file radio-bearer-stats-calculator.cc.

References ns3::LteStatsCalculator::GetUlOutputFilename(), and GetUlPdcpOutputFilename().

std::string ns3::RadioBearerStatsCalculator::GetUlPdcpOutputFilename ( void  )

Get the name of the file where the uplink PDCP statistics will be stored.

Definition at line 634 of file radio-bearer-stats-calculator.cc.

Referenced by GetUlOutputFilename().

std::vector< double > ns3::RadioBearerStatsCalculator::GetUlPduSizeStats ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the uplink PDU size statistics: average, min, max and standard deviation.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
PDU size statistics average, min, max and standard deviation in seconds

Definition at line 471 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint64_t ns3::RadioBearerStatsCalculator::GetUlRxData ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of received uplink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of received data bytes

Definition at line 425 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

Referenced by LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), and LenaTdMtFfMacSchedulerTestCase::DoRun().

uint32_t ns3::RadioBearerStatsCalculator::GetUlRxPackets ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of received uplink packets.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of received uplink packets

Definition at line 409 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint64_t ns3::RadioBearerStatsCalculator::GetUlTxData ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of transmitted uplink data bytes.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of transmitted data bytes

Definition at line 417 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

uint32_t ns3::RadioBearerStatsCalculator::GetUlTxPackets ( uint64_t  imsi,
uint8_t  lcid 
)

Gets the number of transmitted uplink packets.

Parameters
imsiIMSI of the UE
lcidLCID
Returns
number of transmitted uplink packets

Definition at line 401 of file radio-bearer-stats-calculator.cc.

References NS_LOG_FUNCTION.

void ns3::RadioBearerStatsCalculator::SetDlPdcpOutputFilename ( std::string  outputFilename)

Set the name of the file where the downlink PDCP statistics will be stored.

Parameters
outputFilenamestring with the name of the file

Definition at line 639 of file radio-bearer-stats-calculator.cc.

Referenced by GetTypeId().

void ns3::RadioBearerStatsCalculator::SetEpoch ( Time  e)
Parameters
ethe epoch duration

Definition at line 121 of file radio-bearer-stats-calculator.cc.

References m_epochDuration.

Referenced by GetTypeId().

void ns3::RadioBearerStatsCalculator::SetStartTime ( Time  t)
Parameters
tthe value of the StartTime attribute

Definition at line 108 of file radio-bearer-stats-calculator.cc.

References m_startTime.

Referenced by GetTypeId().

void ns3::RadioBearerStatsCalculator::SetUlPdcpOutputFilename ( std::string  outputFilename)

Set the name of the file where the uplink PDCP statistics will be stored.

Parameters
outputFilenamestring with the name of the file

Definition at line 628 of file radio-bearer-stats-calculator.cc.

Referenced by GetTypeId().

void ns3::RadioBearerStatsCalculator::UlRxPdu ( uint16_t  cellId,
uint64_t  imsi,
uint16_t  rnti,
uint8_t  lcid,
uint32_t  packetSize,
uint64_t  delay 
)

Notifies the stats calculator that an uplink reception has occurred.

Parameters
cellIdCellId of the attached Enb
imsiIMSI of the UE who received the PDU
rntiC-RNTI of the UE who received the PDU
lcidLCID through which the PDU has been received
packetSizesize of the PDU in bytes
delayRLC to RLC delay in nanoseconds

Definition at line 164 of file radio-bearer-stats-calculator.cc.

References m_pendingOutput, m_startTime, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

void ns3::RadioBearerStatsCalculator::UlTxPdu ( uint16_t  cellId,
uint64_t  imsi,
uint16_t  rnti,
uint8_t  lcid,
uint32_t  packetSize 
)

Notifies the stats calculator that an uplink transmission has occurred.

Parameters
cellIdCellId of the attached Enb
imsiIMSI of the UE who transmitted the PDU
rntiC-RNTI of the UE who transmitted the PDU
lcidLCID through which the PDU has been transmitted
packetSizesize of the PDU in bytes

Definition at line 134 of file radio-bearer-stats-calculator.cc.

References m_pendingOutput, m_startTime, ns3::Simulator::Now(), and NS_LOG_FUNCTION.

Member Data Documentation

Time ns3::RadioBearerStatsCalculator::m_epochDuration
private

Epoch duration

Definition at line 379 of file radio-bearer-stats-calculator.h.

Referenced by GetEpoch(), and SetEpoch().

bool ns3::RadioBearerStatsCalculator::m_firstWrite
private

true if output files have not been opened yet

Definition at line 384 of file radio-bearer-stats-calculator.h.

bool ns3::RadioBearerStatsCalculator::m_pendingOutput
private

true if any output is pending

Definition at line 389 of file radio-bearer-stats-calculator.h.

Referenced by DlRxPdu(), DlTxPdu(), DoDispose(), UlRxPdu(), and UlTxPdu().

Time ns3::RadioBearerStatsCalculator::m_startTime
private

Start time of the on going epoch

Definition at line 374 of file radio-bearer-stats-calculator.h.

Referenced by DlRxPdu(), DlTxPdu(), GetStartTime(), SetStartTime(), UlRxPdu(), and UlTxPdu().


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