Testing UE measurements in LTE with simulation of 2 eNodeB and 1 UE in piecewise configuration and 240 ms report interval. More...
#include <lte-test-ue-measurements.h>
Public Member Functions | |
LteUeMeasurementsPiecewiseTestCase2 (std::string name, LteRrcSap::ReportConfigEutra config, std::vector< Time > expectedTime, std::vector< uint8_t > expectedRsrp) | |
virtual | ~LteUeMeasurementsPiecewiseTestCase2 () |
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, enum TestDuration duration) |
Add an individual child TestCase to this test suite. More... | |
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 2 eNodeB and 1 UE in piecewise configuration and 240 ms report interval.
Definition at line 204 of file lte-test-ue-measurements.h.
LteUeMeasurementsPiecewiseTestCase2::LteUeMeasurementsPiecewiseTestCase2 | ( | std::string | name, |
LteRrcSap::ReportConfigEutra | config, | ||
std::vector< Time > | expectedTime, | ||
std::vector< uint8_t > | expectedRsrp | ||
) |
Definition at line 1127 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 1149 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 1155 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 1267 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 LteUeMeasurementsPiecewiseTestCase2::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 1278 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 1368 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 1361 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 1375 of file lte-test-ue-measurements.cc.
References m_ueMobility, NS_LOG_FUNCTION, and ns3::MobilityModel::SetPosition().
Referenced by DoRun().
|
private |
Definition at line 1354 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 251 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 282 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 263 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase2(), and RecvMeasurementReportCallback().
|
private |
The list of expected time when measurement reports are received by eNodeB.
Definition at line 257 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase2(), and RecvMeasurementReportCallback().
|
private |
Pointer to the element of m_expectedRsrp
which is expected to occur next in the simulation.
Definition at line 275 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase2(), and RecvMeasurementReportCallback().
|
private |
Pointer to the element of m_expectedTime
which is expected to occur next in the simulation.
Definition at line 269 of file lte-test-ue-measurements.h.
Referenced by DoTeardown(), LteUeMeasurementsPiecewiseTestCase2(), and RecvMeasurementReportCallback().
|
private |
Definition at line 284 of file lte-test-ue-measurements.h.
Referenced by DoRun(), TeleportFar(), TeleportNear(), TeleportVeryFar(), and TeleportVeryNear().