@signal[macCellThroughputUl];
@statistic[macCellThroughputUl](title="Cell Throughput at the MAC layer UL"; unit="Bps"; source="macCellThroughputUl"; record=mean);
@signal[macCellThroughputDl];
@statistic[macCellThroughputDl](title="Cell Throughput at the MAC layer DL"; unit="Bps"; source="macCellThroughputDl"; record=mean);
@signal[macCellThroughputD2D];
@statistic[macCellThroughputD2D](title="Cell Throughput at the MAC layer D2D"; unit="Bps"; source="macCellThroughputD2D"; record=mean);
The recording of the statistics takes place the extractCorrectPdus method of the respective HarqBuffer ( normal or
d2d enabled case). The cell throughput is calculated by dividing the total amount of bytes received by the total amount of elapsed time.
The problem is that totalCellRcvdBytes_ is a static unsigned int. See LteHarqBufferRx .
This means if multiple eNB's/gNB's are simulated, they will add up their received total.
The variable can only hold 2^32 which is easily read when all eNB's/gNB's write to the same variable.
Possible fix.
Use INET ThroughputFilter result filter implementation.
See for instance the ActivePacketSourceBase module of the INET queuing API. Here the throughput is calculated
by the ThroughputFilter using statistics and result filter tools provided by OMNeT. It also allows to configure the
interval length using ini files on a simulation by simulation basis.
The statistics are defined in
LteMac.ned
The recording of the statistics takes place the extractCorrectPdus method of the respective HarqBuffer ( normal or d2d enabled case). The cell throughput is calculated by dividing the total amount of bytes received by the total amount of elapsed time.
The problem is that
totalCellRcvdBytes_
is a static unsigned int. See LteHarqBufferRx .Possible fix.
Use INET ThroughputFilter result filter implementation. See for instance the ActivePacketSourceBase module of the INET queuing API. Here the throughput is calculated by the ThroughputFilter using statistics and result filter tools provided by OMNeT. It also allows to configure the interval length using ini files on a simulation by simulation basis.