Testing UE measurements in LTE with simulation of 1 eNodeB and 1 UE in piecewise configuration and 120 ms report interval. More...
#include <lte-test-ue-measurements.h>
Public Member Functions | |
LteUeMeasurementsPiecewiseTestCase1 (std::string name, LteRrcSap::ReportConfigEutra config, std::vector< Time > expectedTime, std::vector< uint8_t > expectedRsrp) | |
virtual | ~LteUeMeasurementsPiecewiseTestCase1 () |
void | RecvMeasurementReportCallback (std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti, LteRrcSap::MeasurementReport report) |
Triggers when eNodeB receives measurement report from UE, then perform verification on it. More... | |
Public Member Functions inherited from ns3::TestCase | |
virtual | ~TestCase () |
Destructor. More... | |
Private Member Functions | |
virtual void | DoRun () |
Setup the simulation with the intended UE measurement reporting configuration, run it, and connect the RecvMeasurementReportCallback function to the LteUeRrc::RecvMeasurementReport trace source. More... | |
virtual void | DoTeardown () |
Runs at the end of the simulation, verifying that all expected measurement reports have been examined. More... | |
void | TeleportFar () |
void | TeleportNear () |
void | TeleportVeryFar () |
void | TeleportVeryNear () |
Private Attributes | |
LteRrcSap::ReportConfigEutra | m_config |
The active report triggering configuration. More... | |
uint8_t | m_expectedMeasId |
The measurement identity being tested. More... | |
std::vector< uint8_t > | m_expectedRsrp |
The list of expected values of RSRP (in 3GPP range unit) from the measurement reports received. More... | |
std::vector< Time > | m_expectedTime |
The list of expected time when measurement reports are received by eNodeB. More... | |
std::vector< uint8_t >::iterator | m_itExpectedRsrp |
Pointer to the element of m_expectedRsrp which is expected to occur next in the simulation. More... | |
std::vector< Time >::iterator | m_itExpectedTime |
Pointer to the element of m_expectedTime which is expected to occur next in the simulation. More... | |
Ptr< MobilityModel > | m_ueMobility |
Additional Inherited Members | |
Public Types inherited from ns3::TestCase | |
enum | TestDuration { QUICK = 1, EXTENSIVE = 2, TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
Protected Member Functions inherited from ns3::TestCase | |
TestCase (std::string name) | |
void | AddTestCase (TestCase *testCase) NS_DEPRECATED |
Add an individual child TestCase case to this TestCase. More... | |
void | AddTestCase (TestCase *testCase, enum TestDuration duration) |
Add an individual child TestCase to this test suite. More... | |
std::string | CreateDataDirFilename (std::string filename) |
std::string | CreateTempDirFilename (std::string filename) |
bool | GetErrorStatus (void) const NS_DEPRECATED |
std::string | GetName (void) const |
bool | IsStatusFailure (void) const |
bool | IsStatusSuccess (void) const |
bool | MustAssertOnFailure (void) const |
bool | MustContinueOnFailure (void) const |
void | ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line) |
void | SetDataDir (std::string directory) |
Testing UE measurements in LTE with simulation of 1 eNodeB and 1 UE in piecewise configuration and 120 ms report interval.
Definition at line 97 of file lte-test-ue-measurements.h.
ns3::LteUeMeasurementsPiecewiseTestCase1::LteUeMeasurementsPiecewiseTestCase1 | ( | std::string | name, |
LteRrcSap::ReportConfigEutra | config, | ||
std::vector< Time > | expectedTime, | ||
std::vector< uint8_t > | expectedRsrp | ||
) |
Definition at line 540 of file lte-test-ue-measurements.cc.
References m_expectedRsrp, m_expectedTime, m_itExpectedRsrp, m_itExpectedTime, NS_FATAL_ERROR, and NS_LOG_INFO.
|
virtual |
Definition at line 562 of file lte-test-ue-measurements.cc.
References NS_LOG_FUNCTION.
|
privatevirtual |
Setup the simulation with the intended UE measurement reporting configuration, run it, and connect the RecvMeasurementReportCallback
function to the LteUeRrc::RecvMeasurementReport
trace source.
Implements ns3::TestCase.
Definition at line 568 of file lte-test-ue-measurements.cc.
References ns3::Config::Connect(), ns3::NodeContainer::Create(), ns3::Simulator::Destroy(), ns3::EpsBearer::GBR_CONV_VOICE, ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::TestCase::GetName(), ns3::Object::GetObject(), ns3::MobilityHelper::Install(), m_config, m_expectedMeasId, m_ueMobility, ns3::MakeCallback(), NS_LOG_INFO, ns3::FfMacScheduler::PUSCH_UL_CQI, RecvMeasurementReportCallback(), ns3::Simulator::Run(), ns3::Simulator::Schedule(), ns3::Config::SetDefault(), ns3::MobilityHelper::SetMobilityModel(), ns3::MobilityHelper::SetPositionAllocator(), ns3::Simulator::Stop(), TeleportFar(), TeleportNear(), TeleportVeryFar(), and TeleportVeryNear().
|
privatevirtual |
Runs at the end of the simulation, verifying that all expected measurement reports have been examined.
Reimplemented from ns3::TestCase.
Definition at line 672 of file lte-test-ue-measurements.cc.
References m_expectedRsrp, m_expectedTime, m_itExpectedRsrp, m_itExpectedTime, NS_ASSERT, NS_LOG_FUNCTION, and NS_TEST_ASSERT_MSG_EQ.
void ns3::LteUeMeasurementsPiecewiseTestCase1::RecvMeasurementReportCallback | ( | std::string | context, |
uint64_t | imsi, | ||
uint16_t | cellId, | ||
uint16_t | rnti, | ||
LteRrcSap::MeasurementReport | report | ||
) |
Triggers when eNodeB receives measurement report from UE, then perform verification on it.
The trigger is set up beforehand by connecting to the LteUeRrc::RecvMeasurementReport
trace source.
Verification consists of checking whether the report carries the right value of RSRP or not, and whether it occurs at the expected time or not.
Definition at line 683 of file lte-test-ue-measurements.cc.
References ns3::Time::GetMilliSeconds(), ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, m_expectedMeasId, m_expectedRsrp, m_expectedTime, m_itExpectedRsrp, m_itExpectedTime, ns3::LteRrcSap::MeasResults::measId, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasurementReport::measResults, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_TEST_ASSERT_MSG_EQ, ns3::EutranMeasurementMapping::RsrpRange2Dbm(), ns3::LteRrcSap::MeasResults::rsrpResult, ns3::EutranMeasurementMapping::RsrqRange2Db(), and ns3::LteRrcSap::MeasResults::rsrqResult.
Referenced by DoRun().
|
private |
Definition at line 747 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 740 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 754 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 733 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
The active report triggering configuration.
Definition at line 144 of file lte-test-ue-measurements.h.
Referenced by DoRun().
|
private |
The measurement identity being tested.
Measurement reports with different measurement identity (e.g. from handover algorithm) will be ignored.
Definition at line 175 of file lte-test-ue-measurements.h.
Referenced by DoRun(), and RecvMeasurementReportCallback().
|
private |
The list of expected values of RSRP (in 3GPP range unit) from the measurement reports received.
Definition at line 156 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase1(), and RecvMeasurementReportCallback().
|
private |
The list of expected time when measurement reports are received by eNodeB.
Definition at line 150 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase1(), and RecvMeasurementReportCallback().
|
private |
Pointer to the element of m_expectedRsrp
which is expected to occur next in the simulation.
Definition at line 168 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase1(), and RecvMeasurementReportCallback().
|
private |
Pointer to the element of m_expectedTime
which is expected to occur next in the simulation.
Definition at line 162 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase1(), and RecvMeasurementReportCallback().
|
private |
Definition at line 177 of file lte-test-ue-measurements.h.
Referenced by DoRun(), TeleportFar(), TeleportNear(), TeleportVeryFar(), and TeleportVeryNear().