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... | |
![]() | |
virtual | ~TestCase () |
Destructor. More... | |
std::string | GetName (void) const |
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 | |
![]() | |
enum | TestDuration { QUICK = 1, EXTENSIVE = 2, TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
![]() | |
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... | |
bool | GetErrorStatus (void) const NS_DEPRECATED |
TestCase * | GetParent () const |
bool | IsStatusFailure (void) const |
bool | IsStatusSuccess (void) const |
void | SetDataDir (std::string directory) |
void | ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line) |
Log the failure of this TestCase. More... | |
bool | MustAssertOnFailure (void) const |
bool | MustContinueOnFailure (void) const |
std::string | CreateDataDirFilename (std::string filename) |
std::string | CreateTempDirFilename (std::string filename) |
Testing UE measurements in LTE with simulation of 1 eNodeB and 1 UE in piecewise configuration and 120 ms report interval.
Definition at line 100 of file lte-test-ue-measurements.h.
LteUeMeasurementsPiecewiseTestCase1::LteUeMeasurementsPiecewiseTestCase1 | ( | std::string | name, |
LteRrcSap::ReportConfigEutra | config, | ||
std::vector< Time > | expectedTime, | ||
std::vector< uint8_t > | expectedRsrp | ||
) |
Definition at line 543 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 565 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 571 of file lte-test-ue-measurements.cc.
References ns3::LteHelper::ActivateDataRadioBearer(), ns3::ListPositionAllocator::Add(), ns3::LteEnbRrc::AddUeMeasReportConfig(), ns3::LteHelper::Attach(), ns3::Config::Connect(), ns3::NodeContainer::Create(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::TestCase::GetName(), ns3::Object::GetObject(), ns3::MobilityHelper::Install(), ns3::LteHelper::InstallEnbDevice(), ns3::LteHelper::InstallUeDevice(), m_config, m_expectedMeasId, m_ueMobility, ns3::MakeCallback(), ns3::MilliSeconds(), NS_LOG_INFO, RecvMeasurementReportCallback(), ns3::Seconds(), ns3::ObjectBase::SetAttribute(), ns3::Config::SetDefault(), ns3::MobilityHelper::SetMobilityModel(), ns3::MobilityHelper::SetPositionAllocator(), ns3::LteHelper::SetSchedulerAttribute(), ns3::LteHelper::SetSchedulerType(), 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 678 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 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 689 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::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_TEST_ASSERT_MSG_EQ, ns3::LteRrcSap::MeasResults::rsrpResult, and ns3::LteRrcSap::MeasResults::rsrqResult.
Referenced by DoRun().
|
private |
Definition at line 753 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 746 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 760 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 739 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 147 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 178 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 159 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 153 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 171 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 165 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase1(), and RecvMeasurementReportCallback().
|
private |
Definition at line 180 of file lte-test-ue-measurements.h.
Referenced by DoRun(), TeleportFar(), TeleportNear(), TeleportVeryFar(), and TeleportVeryNear().