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 class | Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
Static Public Attributes inherited from ns3::TestCase | |
static constexpr auto | QUICK = Duration::QUICK |
Deprecated test duration simple enums. | |
static constexpr auto | EXTENSIVE = Duration::EXTENSIVE |
static constexpr auto | TAKES_FOREVER = Duration::TAKES_FOREVER |
Protected Member Functions inherited from ns3::TestCase | |
TestCase (std::string name) | |
Constructor. | |
void | AddTestCase (TestCase *testCase, Duration duration=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 42 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 179 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 158 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 512 of file test-lte-x2-handover.cc.
References ns3::ObjectPtrContainerValue::Begin(), ns3::LteUeRrc::CONNECTED_NORMALLY, ns3::UeManager::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 622 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 209 of file test-lte-x2-handover.cc.
References ns3::Ipv4AddressHelper::Assign(), LteX2HandoverTestCase::UeData::bearerDataList, ns3::NetDeviceContainer::Begin(), BuildNameString(), CheckConnected(), CheckStatsAWhileAfterHandover(), ns3::Create(), ns3::NodeContainer::Create(), ns3::CreateObject(), 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::RngSeedManager::GetRun(), ns3::RngSeedManager::GetSeed(), ns3::Ipv4StaticRoutingHelper::GetStaticRouting(), ns3::ApplicationHelper::Install(), ns3::PointToPointHelper::Install(), 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::Ipv4AddressHelper::SetBase(), ns3::PointToPointHelper::SetChannelAttribute(), ns3::Config::SetDefault(), ns3::PointToPointHelper::SetDeviceAttribute(), ns3::RngSeedManager::SetRun(), 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 610 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 600 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 593 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
whether to admit the handover request
Definition at line 108 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
|
private |
|
private |
handover event list name
Definition at line 105 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
number of UEs in the test
Definition at line 103 of file test-lte-x2-handover.cc.
Referenced by CheckConnected(), and DoRun().
|
private |
number of UEs in the test
Definition at line 102 of file test-lte-x2-handover.cc.
Referenced by DoRun().
|
private |
|
private |
stats duration
Definition at line 152 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UDP client interval.
Definition at line 153 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UDP client packet size.
Definition at line 154 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), and DoRun().
|
private |
UE data vector.
Definition at line 149 of file test-lte-x2-handover.cc.
Referenced by CheckStatsAWhileAfterHandover(), DoRun(), and SaveStatsAfterHandover().
|
private |
whether to use the ideal RRC
Definition at line 109 of file test-lte-x2-handover.cc.
Referenced by DoRun().