revised test vector, conditions and scenario of lte-phy-error-model test
This commit is contained in:
@@ -608,9 +608,9 @@ The parameters of the nine test cases are reported in the following:
|
||||
BLER for test 6.
|
||||
|
||||
|
||||
The test verifies that in each case the expected number of packets received correct corresponds to a Bernoulli distribution with a confidence interval of 99%, where the probability of success in each trail is :math:`p=1-BER` and :math:`n` is the total number of packet sent.
|
||||
The test condition verifies that in each test case the expected number of packets received correct corresponds to a Bernoulli distribution with a confidence interval of 99%, where the probability of success in each trail is :math:`p=1-BER` and :math:`n` is the total number of packet sent.
|
||||
|
||||
The error model of PCFICH-PDDCH channels consists of 4 test cases with a single UE and several eNBs, where the UE is connected to only one eNB in order to have the remaining acting as interfering ones. The errors on data are disabled in order to verify only the ones due to erroneous decodification of PCFICH-PDCCH. The test verifies that the error on the data received respects the decodification error probability of the PCFICH-PDCCH with a tolerance of 0.1 due to the errors that might be produced in quantizing the MI and the error curve. As before, the system has been forced on working in a less conservative fashion in the AMC module for appreciating the results in border situations. The parameters of the 4 tests cases are reported in the following:
|
||||
The error model of PCFICH-PDCCH channels consists of 4 test cases with a single UE and several eNBs, where the UE is connected to only one eNB in order to have the remaining acting as interfering ones. The errors on data are disabled in order to verify only the ones due to erroneous decodification of PCFICH-PDCCH. As before, the system has been forced on working in a less conservative fashion in the AMC module for appreciating the results in border situations. The parameters of the 4 tests cases are reported in the following:
|
||||
|
||||
#. 2 eNBs placed 1078 meters far from the UE, which implies a SINR of -2.00 dB and a TB of 217 bits, that in turns produce a BLER of 0.007.
|
||||
#. 3 eNBs placed 1078 meters far from the UE, which implies a SINR of -4.00 dB and a TB of 217 bits, that in turns produce a BLER of 0.045.
|
||||
@@ -618,6 +618,9 @@ The error model of PCFICH-PDDCH channels consists of 4 test cases with a single
|
||||
#. 5 eNBs placed 1078 meters far from the UE, which implies a SINR of -7.00 dB and a TB of 81 bits, that in turns produce a BLER of 0.343.
|
||||
|
||||
|
||||
The test condition verifies that in each test case the expected number of packets received correct corresponds to a Bernoulli distribution with a confidence interval of 99.8%, where the probability of success in each trail is :math:`p=1-BER` and :math:`n` is the total number of packet sent. The larger confidence interval is due to the errors that might be produced in quantizing the MI and the error curve.
|
||||
|
||||
|
||||
HARQ Model
|
||||
----------
|
||||
|
||||
|
||||
@@ -46,13 +46,14 @@
|
||||
#include <ns3/config.h>
|
||||
#include <ns3/boolean.h>
|
||||
#include <ns3/enum.h>
|
||||
#include <ns3/integer.h>
|
||||
#include <ns3/unused.h>
|
||||
#include <ns3/ff-mac-scheduler.h>
|
||||
#include <ns3/buildings-helper.h>
|
||||
|
||||
#include "lte-test-phy-error-model.h"
|
||||
|
||||
NS_LOG_COMPONENT_DEFINE ("LenaTestPhyErrorModel");
|
||||
NS_LOG_COMPONENT_DEFINE ("LteTestPhyErrorModel");
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
@@ -63,59 +64,70 @@ LenaTestPhyErrorModelrSuite::LenaTestPhyErrorModelrSuite ()
|
||||
NS_LOG_INFO ("creating LenaTestPhyErrorModelTestCase");
|
||||
|
||||
|
||||
// Tests on DL Control Channels (PCFICH+PDDCH)
|
||||
// 1 interfering eNB SINR -2.0 BLER 0.007 TB size 217
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (2, 1078, 217, 0.007), TestCase::QUICK);
|
||||
// 2 interfering eNBs SINR -4.0 BLER 0.037 TB size 217
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (3, 1040, 217, 0.045), TestCase::EXTENSIVE);
|
||||
// 3 interfering eNBs SINR -6.0 BLER 0.21 TB size 133
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (4, 1250, 133, 0.206), TestCase::EXTENSIVE);
|
||||
// 4 interfering eNBs SINR -7.0 BLER 0.34 TB size 133
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (5, 1260, 81, 0.343), TestCase::EXTENSIVE);
|
||||
for (uint32_t rngRun = 1; rngRun <= 3; ++rngRun)
|
||||
{
|
||||
|
||||
// Tests on DL Control Channels (PCFICH+PDCCH)
|
||||
// the tolerance is calculated with the following octave code:
|
||||
//
|
||||
// n = 1000; # TX packets
|
||||
// for p=1-[0.007 0.045 0.206 0.343]
|
||||
// tol = n*p - binoinv(0.001, n, p)
|
||||
// endfor
|
||||
|
||||
// Tests on DL Data channels (PDSCH)
|
||||
// the tolerance is calculated with the following octave code:
|
||||
//
|
||||
// n = 1000;
|
||||
// for p=1-[0.33 0.11 0.2 0.3 0.55 0.14]
|
||||
// tol = n*p - binoinv(0.005, n, p)
|
||||
// endfor
|
||||
// 1 interfering eNB SINR -2.0 BLER 0.007 TB size 217
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (2, 1078, 217, 0.007, 9, rngRun), (rngRun == 1) ? TestCase::QUICK : TestCase::TAKES_FOREVER);
|
||||
// 2 interfering eNBs SINR -4.0 BLER 0.037 TB size 217
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (3, 1040, 217, 0.045, 21, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// 3 interfering eNBs SINR -6.0 BLER 0.21 TB size 133
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (4, 1250, 133, 0.206, 40, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// 4 interfering eNBs SINR -7.0 BLER 0.34 TB size 133
|
||||
AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (5, 1260, 81, 0.343, 47, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
|
||||
// MCS 2 TB size of 256 bits BLER 0.33 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (4, 1800, 32, 0.33, 39), TestCase::QUICK);
|
||||
// MCS 2 TB size of 528 bits BLER 0.11 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (2, 1800, 66, 0.11, 26), TestCase::EXTENSIVE);
|
||||
// MCS 2 TB size of 1088 bits BLER 0.02 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 1800, 136, 0.02, 33), TestCase::EXTENSIVE);
|
||||
// MCS 12 TB size of 4800 bits BLER 0.3 SINR 4.43
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 600, 600, 0.3, 38), TestCase::EXTENSIVE);
|
||||
// MCS 12 TB size of 1632 bits BLER 0.55 SINR 4.43
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (3, 600, 204, 0.55, 40), TestCase::EXTENSIVE);
|
||||
// MCS 16 TB size of 7272 bits (3648 x 3584) BLER 0.14 SINR 8.48
|
||||
// BLER 0.14 = 1 - ((1-0.075)*(1-0.075))
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 470, 781, 0.14, 29), TestCase::EXTENSIVE);
|
||||
// Tests on DL Data channels (PDSCH)
|
||||
// the tolerance is calculated with the following octave code:
|
||||
//
|
||||
// n = 1000; # TX packets
|
||||
// for p=1-[0.33 0.11 0.2 0.3 0.55 0.14]
|
||||
// tol = n*p - binoinv(0.005, n, p)
|
||||
// endfor
|
||||
|
||||
|
||||
// MCS 2 TB size of 256 bits BLER 0.33 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (4, 1800, 32, 0.33, 39, rngRun), (rngRun == 1) ? TestCase::QUICK : TestCase::TAKES_FOREVER);
|
||||
// MCS 2 TB size of 528 bits BLER 0.11 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (2, 1800, 66, 0.11, 26, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// MCS 2 TB size of 1088 bits BLER 0.02 SINR -5.51
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 1800, 136, 0.02, 33, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// MCS 12 TB size of 4800 bits BLER 0.3 SINR 4.43
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 600, 600, 0.3, 38, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// MCS 12 TB size of 1632 bits BLER 0.55 SINR 4.43
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (3, 600, 204, 0.55, 40, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
// MCS 16 TB size of 7272 bits (3648 x 3584) BLER 0.14 SINR 8.48
|
||||
// BLER 0.14 = 1 - ((1-0.075)*(1-0.075))
|
||||
AddTestCase (new LenaDataPhyErrorModelTestCase (1, 470, 781, 0.14, 29, rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static LenaTestPhyErrorModelrSuite lenaTestPhyErrorModelrSuite;
|
||||
|
||||
std::string
|
||||
LenaDataPhyErrorModelTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
|
||||
LenaDataPhyErrorModelTestCase::BuildNameString (uint16_t nUser, uint16_t dist, uint32_t rngRun)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << nUser << " UEs, distance " << dist << " m";
|
||||
oss << "DataPhyErrorModel " << nUser << " UEs, distance " << dist << " m, RngRun " << rngRun;
|
||||
return oss.str ();
|
||||
}
|
||||
|
||||
LenaDataPhyErrorModelTestCase::LenaDataPhyErrorModelTestCase (uint16_t nUser, uint16_t dist, uint16_t tbSize, double blerRef, uint16_t toleranceRxPackets)
|
||||
: TestCase (BuildNameString (nUser, dist)),
|
||||
LenaDataPhyErrorModelTestCase::LenaDataPhyErrorModelTestCase (uint16_t nUser, uint16_t dist, uint16_t tbSize, double blerRef, uint16_t toleranceRxPackets, uint32_t rngRun)
|
||||
: TestCase (BuildNameString (nUser, dist, rngRun)),
|
||||
m_nUser (nUser),
|
||||
m_dist (dist),
|
||||
m_tbSize (tbSize),
|
||||
m_blerRef (blerRef),
|
||||
m_toleranceRxPackets (toleranceRxPackets)
|
||||
m_toleranceRxPackets (toleranceRxPackets),
|
||||
m_rngRun (rngRun)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -133,12 +145,13 @@ LenaDataPhyErrorModelTestCase::DoRun (void)
|
||||
Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false));
|
||||
Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (true));
|
||||
Config::SetDefault ("ns3::RrFfMacScheduler::HarqEnabled", BooleanValue (false));
|
||||
Config::SetGlobal ("RngRun", IntegerValue (m_rngRun));
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* Initialize Simulation Scenario: 1 eNB and m_nUser UEs
|
||||
*/
|
||||
|
||||
int64_t stream = 1;
|
||||
Ptr<LteHelper> lena = CreateObject<LteHelper> ();
|
||||
|
||||
// Create Nodes: eNodeB and UE
|
||||
@@ -169,7 +182,9 @@ LenaDataPhyErrorModelTestCase::DoRun (void)
|
||||
lena->SetSchedulerAttribute ("UlCqiFilter", EnumValue (FfMacScheduler::PUSCH_UL_CQI));
|
||||
|
||||
enbDevs = lena->InstallEnbDevice (enbNodes);
|
||||
stream += lena->AssignStreams (enbDevs, stream);
|
||||
ueDevs = lena->InstallUeDevice (ueNodes);
|
||||
stream += lena->AssignStreams (ueDevs, stream);
|
||||
|
||||
// Attach a UE to a eNB
|
||||
lena->Attach (ueDevs, enbDevs.Get (0));
|
||||
@@ -199,13 +214,16 @@ LenaDataPhyErrorModelTestCase::DoRun (void)
|
||||
uePhy->SetAttribute ("NoiseFigure", DoubleValue (9.0));
|
||||
}
|
||||
|
||||
lena->EnableRlcTraces ();
|
||||
Time simulationTime = Seconds (1.000);
|
||||
double statsStartTime = 0.04; // need to allow for RRC connection establishment + SRS
|
||||
double statsDuration = 1.0;
|
||||
|
||||
Simulator::Stop (simulationTime);
|
||||
Simulator::Stop (Seconds (statsStartTime + statsDuration - 0.0001));
|
||||
|
||||
lena->EnableRlcTraces ();
|
||||
|
||||
Ptr<RadioBearerStatsCalculator> rlcStats = lena->GetRlcStats ();
|
||||
rlcStats->SetAttribute ("EpochDuration", TimeValue (simulationTime));
|
||||
rlcStats->SetAttribute ("StartTime", TimeValue (Seconds (statsStartTime)));
|
||||
rlcStats->SetAttribute ("EpochDuration", TimeValue (Seconds (statsDuration)));
|
||||
|
||||
|
||||
Simulator::Run ();
|
||||
@@ -231,16 +249,14 @@ LenaDataPhyErrorModelTestCase::DoRun (void)
|
||||
NS_UNUSED (dlBler);
|
||||
|
||||
// sanity check for whether the tx packets reported by the stats are correct
|
||||
// we expect one packet per TTI, excluding the initial RRC connection establishment period
|
||||
double expectedDlMinTxPackets = simulationTime.GetMilliSeconds () - 50;
|
||||
NS_TEST_ASSERT_MSG_GT (dlTxPackets, expectedDlMinTxPackets, " too few DL TX packets reported");
|
||||
|
||||
// the quantiles are evaluated offline according to a Bernoulli
|
||||
// ditribution with n equal to the number of packet sent and p equal
|
||||
// to the BLER (see /reference/bernuolliDistribution.m for details)
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (dlRxPackets, expectedDlRxPackets, m_toleranceRxPackets, " Unexpected DL BLER distribution!");
|
||||
|
||||
// we expect one packet per TTI
|
||||
double expectedDlTxPackets = statsDuration * 1000;
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (dlTxPackets, expectedDlTxPackets, expectedDlTxPackets * 0.005,
|
||||
" too different DL TX packets reported");
|
||||
|
||||
// this is the main test condition: check that the RX packets are consistent with the BLER
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (dlRxPackets, expectedDlRxPackets, m_toleranceRxPackets,
|
||||
" Unexpected DL BLER distribution!");
|
||||
}
|
||||
|
||||
|
||||
@@ -251,20 +267,22 @@ LenaDataPhyErrorModelTestCase::DoRun (void)
|
||||
|
||||
|
||||
std::string
|
||||
LenaDlCtrlPhyErrorModelTestCase::BuildNameString (uint16_t nEnb, uint16_t dist)
|
||||
LenaDlCtrlPhyErrorModelTestCase::BuildNameString (uint16_t nEnb, uint16_t dist, uint32_t rngRun)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << nEnb << " eNBs, distance " << dist << " m";
|
||||
oss << "DlCtrlPhyErrorModel " << nEnb << " eNBs, distance " << dist << " m, RngRun " << rngRun;
|
||||
return oss.str ();
|
||||
}
|
||||
|
||||
|
||||
LenaDlCtrlPhyErrorModelTestCase::LenaDlCtrlPhyErrorModelTestCase (uint16_t nEnb, uint16_t dist, uint16_t tbSize, double blerRef)
|
||||
: TestCase (BuildNameString (nEnb, dist)),
|
||||
m_nEnb (nEnb),
|
||||
m_dist (dist),
|
||||
m_tbSize (tbSize),
|
||||
m_blerRef (blerRef)
|
||||
LenaDlCtrlPhyErrorModelTestCase::LenaDlCtrlPhyErrorModelTestCase (uint16_t nEnb, uint16_t dist, uint16_t tbSize, double blerRef, uint16_t toleranceRxPackets, uint32_t rngRun)
|
||||
: TestCase (BuildNameString (nEnb, dist, rngRun)),
|
||||
m_nEnb (nEnb),
|
||||
m_dist (dist),
|
||||
m_tbSize (tbSize),
|
||||
m_blerRef (blerRef),
|
||||
m_toleranceRxPackets (toleranceRxPackets),
|
||||
m_rngRun (rngRun)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -282,11 +300,13 @@ LenaDlCtrlPhyErrorModelTestCase::DoRun (void)
|
||||
Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (true));
|
||||
Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));
|
||||
Config::SetDefault ("ns3::RrFfMacScheduler::HarqEnabled", BooleanValue (false));
|
||||
|
||||
/**
|
||||
* Initialize Simulation Scenario: 1 eNB and m_nUser UEs
|
||||
*/
|
||||
|
||||
Config::SetGlobal ("RngRun", IntegerValue (m_rngRun));
|
||||
|
||||
/*
|
||||
* Initialize Simulation Scenario: 1 eNB and m_nUser UEs
|
||||
*/
|
||||
|
||||
int64_t stream = 1;
|
||||
Ptr<LteHelper> lena = CreateObject<LteHelper> ();
|
||||
|
||||
// Create Nodes: eNodeB and UE
|
||||
@@ -317,7 +337,9 @@ LenaDlCtrlPhyErrorModelTestCase::DoRun (void)
|
||||
lena->SetSchedulerAttribute ("UlCqiFilter", EnumValue (FfMacScheduler::PUSCH_UL_CQI));
|
||||
|
||||
enbDevs = lena->InstallEnbDevice (enbNodes);
|
||||
stream += lena->AssignStreams (enbDevs, stream);
|
||||
ueDevs = lena->InstallUeDevice (ueNodes);
|
||||
stream += lena->AssignStreams (ueDevs, stream);
|
||||
|
||||
// Attach a UE to one eNB (the others are interfering ones)
|
||||
lena->Attach (ueDevs, enbDevs.Get (0));
|
||||
@@ -347,14 +369,16 @@ LenaDlCtrlPhyErrorModelTestCase::DoRun (void)
|
||||
uePhy->SetAttribute ("TxPower", DoubleValue (23.0));
|
||||
uePhy->SetAttribute ("NoiseFigure", DoubleValue (9.0));
|
||||
|
||||
|
||||
double statsStartTime = 0.04; // need to allow for RRC connection establishment + SRS
|
||||
double statsDuration = 1.0;
|
||||
|
||||
Simulator::Stop (Seconds (statsStartTime + statsDuration - 0.0001));
|
||||
|
||||
lena->EnableRlcTraces ();
|
||||
Time simulationTime = Seconds (1.000);
|
||||
|
||||
Simulator::Stop (simulationTime);
|
||||
|
||||
|
||||
Ptr<RadioBearerStatsCalculator> rlcStats = lena->GetRlcStats ();
|
||||
rlcStats->SetAttribute ("EpochDuration", TimeValue (simulationTime));
|
||||
rlcStats->SetAttribute ("StartTime", TimeValue (Seconds (statsStartTime)));
|
||||
rlcStats->SetAttribute ("EpochDuration", TimeValue (Seconds (statsDuration)));
|
||||
|
||||
|
||||
Simulator::Run ();
|
||||
@@ -369,18 +393,25 @@ LenaDlCtrlPhyErrorModelTestCase::DoRun (void)
|
||||
uint8_t lcId = 3;
|
||||
double dlRxPackets = rlcStats->GetDlRxPackets (imsi, lcId);
|
||||
double dlTxPackets = rlcStats->GetDlTxPackets (imsi, lcId);
|
||||
double bler = 1.0 - (dlRxPackets/dlTxPackets);
|
||||
NS_LOG_INFO ("\tUser " << i << " imsi " << imsi
|
||||
double dlBler = 1.0 - (dlRxPackets/dlTxPackets);
|
||||
double expectedDlRxPackets = dlTxPackets -dlTxPackets*m_blerRef;
|
||||
NS_LOG_INFO ("\tUser " << i << " imsi " << imsi << " DOWNLINK"
|
||||
<< " pkts rx " << dlRxPackets << " tx " << dlTxPackets
|
||||
<< " BLER " << bler << " Err " << fabs (m_blerRef - bler));
|
||||
NS_UNUSED (bler);
|
||||
<< " BLER " << dlBler << " Err " << std::fabs (m_blerRef - dlBler)
|
||||
<< " expected rx " << expectedDlRxPackets
|
||||
<< " difference " << std::abs (expectedDlRxPackets - dlRxPackets)
|
||||
<< " tolerance " << m_toleranceRxPackets);
|
||||
NS_UNUSED (dlBler);
|
||||
|
||||
// sanity check for whether the tx packets reported by the stats are correct
|
||||
// we expect one packet per TTI, excluding the initial RRC connection establishment period
|
||||
double expectedMinDlTxPackets = simulationTime.GetMilliSeconds () - 50;
|
||||
NS_TEST_ASSERT_MSG_GT (dlTxPackets, expectedMinDlTxPackets, " too few TX packets reported");
|
||||
// we expect one packet per TTI
|
||||
double expectedDlTxPackets = statsDuration * 1000;
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (dlTxPackets, expectedDlTxPackets, expectedDlTxPackets * 0.005,
|
||||
" too different DL TX packets reported");
|
||||
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (bler, m_blerRef, 0.1, " Unexpected BLER distribution!");
|
||||
// this is the main test condition: check that the RX packets are consistent with the BLER
|
||||
NS_TEST_ASSERT_MSG_EQ_TOL (dlRxPackets, expectedDlRxPackets, m_toleranceRxPackets,
|
||||
" Unexpected DL BLER distribution!");
|
||||
}
|
||||
|
||||
Simulator::Destroy ();
|
||||
|
||||
@@ -38,17 +38,18 @@ namespace ns3 {
|
||||
class LenaDataPhyErrorModelTestCase : public TestCase
|
||||
{
|
||||
public:
|
||||
LenaDataPhyErrorModelTestCase (uint16_t nUser, uint16_t dist, uint16_t tbSize, double refBler, uint16_t toleranceRxPackets);
|
||||
LenaDataPhyErrorModelTestCase (uint16_t nUser, uint16_t dist, uint16_t tbSize, double refBler, uint16_t toleranceRxPackets, uint32_t rngRun);
|
||||
virtual ~LenaDataPhyErrorModelTestCase ();
|
||||
|
||||
private:
|
||||
virtual void DoRun (void);
|
||||
static std::string BuildNameString (uint16_t nUser, uint16_t dist);
|
||||
static std::string BuildNameString (uint16_t nUser, uint16_t dist, uint32_t rngRun);
|
||||
uint16_t m_nUser;
|
||||
uint16_t m_dist;
|
||||
uint16_t m_tbSize;
|
||||
double m_blerRef;
|
||||
uint16_t m_toleranceRxPackets;
|
||||
uint32_t m_rngRun;
|
||||
|
||||
};
|
||||
|
||||
@@ -56,18 +57,20 @@ private:
|
||||
|
||||
class LenaDlCtrlPhyErrorModelTestCase : public TestCase
|
||||
{
|
||||
public:
|
||||
LenaDlCtrlPhyErrorModelTestCase (uint16_t nEnbr, uint16_t dist, uint16_t tbSize, double refBler);
|
||||
virtual ~LenaDlCtrlPhyErrorModelTestCase ();
|
||||
|
||||
private:
|
||||
virtual void DoRun (void);
|
||||
static std::string BuildNameString (uint16_t nUser, uint16_t dist);
|
||||
uint16_t m_nEnb;
|
||||
uint16_t m_dist;
|
||||
uint16_t m_tbSize;
|
||||
double m_blerRef;
|
||||
|
||||
public:
|
||||
LenaDlCtrlPhyErrorModelTestCase (uint16_t nEnbr, uint16_t dist, uint16_t tbSize, double refBler, uint16_t toleranceRxPackets, uint32_t rngRun);
|
||||
virtual ~LenaDlCtrlPhyErrorModelTestCase ();
|
||||
|
||||
private:
|
||||
virtual void DoRun (void);
|
||||
static std::string BuildNameString (uint16_t nUser, uint16_t dist, uint32_t rngRun);
|
||||
uint16_t m_nEnb;
|
||||
uint16_t m_dist;
|
||||
uint16_t m_tbSize;
|
||||
double m_blerRef;
|
||||
uint16_t m_toleranceRxPackets;
|
||||
uint32_t m_rngRun;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user