Test X2 Handover. More...
Classes | |
struct | BearerData |
BearerData structure. More... | |
struct | UeData |
UeData structure. More... | |
Public Member Functions | |
LteX2HandoverTestCase (uint32_t nUes, uint32_t nDedicatedBearers, std::list< HandoverEvent > handoverEventList, std::string handoverEventListName, std::string schedulerType, bool admitHo, bool useIdealRrc) | |
Public Member Functions inherited from ns3::TestCase | |
TestCase (const TestCase &)=delete | |
virtual | ~TestCase () |
Destructor. | |
std::string | GetName () const |
TestCase & | operator= (const TestCase &)=delete |
Private Member Functions | |
void | CheckConnected (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice) |
Check connected function. | |
void | CheckStatsAWhileAfterHandover (uint32_t ueIndex) |
Check stats a while after handover function. | |
void | DoRun () override |
Implementation to actually run this TestCase. | |
void | SaveStatsAfterHandover (uint32_t ueIndex) |
Save stats after handover function. | |
void | TeleportUeNearTargetEnb (Ptr< Node > ueNode, Ptr< Node > enbNode) |
Teleport UE near the target eNB of the handover. | |
void | TeleportUeToMiddle (Ptr< Node > ueNode) |
Teleport UE between both eNBs of the test. | |
Static Private Member Functions | |
static std::string | BuildNameString (uint32_t nUes, uint32_t nDedicatedBearers, std::string handoverEventListName, std::string schedulerType, bool admitHo, bool useIdealRrc) |
Build name string. | |
Private Attributes | |
bool | m_admitHo |
whether to admit the handover request | |
bool | m_epc |
whether to use EPC | |
Ptr< PointToPointEpcHelper > | m_epcHelper |
EPC helper. | |
std::list< HandoverEvent > | m_handoverEventList |
handover event list | |
std::string | m_handoverEventListName |
handover event list name | |
Ptr< LteHelper > | m_lteHelper |
LTE helper. | |
const Time | m_maxHoDuration |
maximum HO duration | |
uint32_t | m_nDedicatedBearers |
number of UEs in the test | |
uint32_t | m_nUes |
number of UEs in the test | |
std::string | m_schedulerType |
scheduler type | |
const Time | m_statsDuration |
stats duration | |
const Time | m_udpClientInterval |
UDP client interval. | |
const uint32_t | m_udpClientPktSize |
UDP client packet size. | |
std::vector< UeData > | m_ueDataVector |
UE data vector. | |
bool | m_useIdealRrc |
whether to use the ideal RRC | |
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) | |
Constructor. | |
void | AddTestCase (TestCase *testCase, TestDuration duration=QUICK) |
Add an individual child TestCase to this test suite. | |
TestCase * | GetParent () const |
Get the parent of this TestCase. | |
bool | IsStatusFailure () const |
Check if any tests failed. | |
bool | IsStatusSuccess () const |
Check if all tests passed. | |
void | SetDataDir (std::string directory) |
Set the data directory where reference trace files can be found. | |
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. | |
bool | MustAssertOnFailure () const |
Check if this run should assert on failure. | |
bool | MustContinueOnFailure () const |
Check if this run should continue on failure. | |
std::string | CreateDataDirFilename (std::string filename) |
Construct the full path to a file in the data directory. | |
std::string | CreateTempDirFilename (std::string filename) |
Construct the full path to a file in a temporary directory. | |
Test X2 Handover.
In this test is used NoOpHandoverAlgorithm and the request for handover is generated manually, and it is not based on measurements.
Definition at line 51 of file test-lte-x2-handover.cc.
LteX2HandoverTestCase::LteX2HandoverTestCase | ( | uint32_t | nUes, |
uint32_t | nDedicatedBearers, | ||
std::list< HandoverEvent > | handoverEventList, | ||
std::string | handoverEventListName, | ||
std::string | schedulerType, | ||
bool | admitHo, | ||
bool | useIdealRrc | ||
) |
nUes | number of UEs in the test |
nDedicatedBearers | number of bearers to be activated per UE |
handoverEventList | |
handoverEventListName | |
schedulerType | the scheduler type |
admitHo | |
useIdealRrc | true if the ideal RRC should be used |
Definition at line 188 of file test-lte-x2-handover.cc.
|
staticprivate |
Build name string.
nUes | number of UEs in the test |
nDedicatedBearers | number of bearers to be activated per UE |
handoverEventListName | |
schedulerType | the scheduler type |
admitHo | |
useIdealRrc | true if the ideal RRC should be used |
Definition at line 167 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
Check connected function.
ueDevice | the UE device |
enbDevice | the ENB device |
Definition at line 522 of file test-lte-x2-handover.cc.
References ns3::ObjectPtrContainerValue::Begin(), ns3::UeManager::CONNECTED_NORMALLY, ns3::LteUeRrc::CONNECTED_NORMALLY, ns3::ObjectPtrContainerValue::End(), ns3::ObjectPtrContainerValue::GetN(), m_nDedicatedBearers, NS_ASSERT_MSG, NS_TEST_ASSERT_MSG_EQ, and NS_TEST_ASSERT_MSG_NE.
Referenced by DoRun().
|
private |
Check stats a while after handover function.
ueIndex | the index of the UE |
Definition at line 632 of file test-lte-x2-handover.cc.
References m_statsDuration, m_udpClientInterval, m_udpClientPktSize, m_ueDataVector, and NS_TEST_ASSERT_MSG_EQ.
Referenced by DoRun().
|
overrideprivatevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 218 of file test-lte-x2-handover.cc.
References ns3::LteHelper::ActivateDataRadioBearer(), ns3::LteHelper::ActivateDedicatedEpsBearer(), ns3::LteHelper::AddX2Interface(), ns3::Ipv4AddressHelper::Assign(), ns3::LteHelper::AssignStreams(), ns3::NoBackhaulEpcHelper::AssignUeIpv4Address(), ns3::LteHelper::Attach(), LteX2HandoverTestCase::UeData::bearerDataList, ns3::NetDeviceContainer::Begin(), BuildNameString(), CheckConnected(), CheckStatsAWhileAfterHandover(), ns3::NodeContainer::Create(), ns3::Simulator::Destroy(), LteX2HandoverTestCase::BearerData::dlSink, ns3::NetDeviceContainer::End(), ns3::ApplicationContainer::Get(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::Ipv4Address::GetAny(), ns3::NetDeviceContainer::GetN(), ns3::NodeContainer::GetN(), ns3::Object::GetObject(), ns3::NoBackhaulEpcHelper::GetPgwNode(), ns3::RngSeedManager::GetRun(), ns3::RngSeedManager::GetSeed(), ns3::Ipv4StaticRoutingHelper::GetStaticRouting(), ns3::NoBackhaulEpcHelper::GetUeDefaultGatewayAddress(), ns3::LteHelper::HandoverRequest(), ns3::UdpClientHelper::Install(), ns3::PointToPointHelper::Install(), ns3::PacketSinkHelper::Install(), ns3::LteHelper::InstallEnbDevice(), ns3::LteHelper::InstallUeDevice(), ns3::EpcTft::PacketFilter::localPortEnd, ns3::EpcTft::PacketFilter::localPortStart, m_admitHo, m_epc, m_epcHelper, m_handoverEventList, m_handoverEventListName, m_lteHelper, m_maxHoDuration, m_nDedicatedBearers, m_nUes, m_schedulerType, m_statsDuration, m_udpClientInterval, m_udpClientPktSize, m_ueDataVector, m_useIdealRrc, ns3::MilliSeconds(), ns3::EpsBearer::NGBR_VIDEO_TCP_DEFAULT, NS_LOG_FUNCTION, ns3::EpcTft::PacketFilter::remotePortEnd, ns3::EpcTft::PacketFilter::remotePortStart, ns3::Config::Reset(), ns3::Simulator::Run(), SaveStatsAfterHandover(), ns3::Simulator::Schedule(), ns3::Seconds(), ns3::ObjectBase::SetAttribute(), ns3::Ipv4AddressHelper::SetBase(), ns3::PointToPointHelper::SetChannelAttribute(), ns3::Config::SetDefault(), ns3::PointToPointHelper::SetDeviceAttribute(), ns3::LteHelper::SetEpcHelper(), ns3::LteHelper::SetHandoverAlgorithmType(), ns3::RngSeedManager::SetRun(), ns3::LteHelper::SetSchedulerType(), ns3::RngSeedManager::SetSeed(), ns3::Simulator::Stop(), stopTime, TeleportUeNearTargetEnb(), TeleportUeToMiddle(), and LteX2HandoverTestCase::BearerData::ulSink.
|
private |
Save stats after handover function.
ueIndex | the index of the UE |
Definition at line 620 of file test-lte-x2-handover.cc.
References m_ueDataVector.
Referenced by DoRun().
|
private |
Teleport UE near the target eNB of the handover.
ueNode | the UE node |
enbNode | the target eNB node |
Definition at line 610 of file test-lte-x2-handover.cc.
Referenced by DoRun().
Teleport UE between both eNBs of the test.
ueNode | the UE node |
Definition at line 603 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
whether to admit the handover request
Definition at line 117 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
|
private |
|
private |
handover event list name
Definition at line 114 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
number of UEs in the test
Definition at line 112 of file test-lte-x2-handover.cc.
Referenced by CheckConnected(), and DoRun().
|
private |
number of UEs in the test
Definition at line 111 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
stats duration
Definition at line 161 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UDP client interval.
Definition at line 162 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UDP client packet size.
Definition at line 163 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UE data vector.
Definition at line 158 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), DoRun(), and SaveStatsAfterHandover().
|
private |
whether to use the ideal RRC
Definition at line 118 of file test-lte-x2-handover.cc.
Referenced by DoRun().