9#ifndef LTE_TEST_RADIO_LINK_FAILURE_H
10#define LTE_TEST_RADIO_LINK_FAILURE_H
12#include <ns3/lte-ue-rrc.h>
13#include <ns3/mobility-model.h>
14#include <ns3/net-device-container.h>
15#include <ns3/node-container.h>
16#include <ns3/nstime.h>
18#include <ns3/vector.h>
67 std::vector<Vector> uePositionList,
68 std::vector<Vector> enbPositionList,
69 Vector ueJumpAwayPosition,
70 std::vector<Time> checkConnectedList);
87 void DoRun()
override;
197 void JumpAway(Vector UeJumpAwayPositionList);
Testing the cell reselection procedure by UE at IDLE state.
uint32_t m_numOfInSyncIndications
number of in-sync indications detected
bool m_radioLinkFailureDetected
true if radio link fails
void JumpAway(Vector UeJumpAwayPositionList)
Jump away function.
void PhySyncDetectionCallback(std::string context, uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint8_t count)
This callback function is executed when UE RRC receives an in-sync or out-of-sync indication.
void CheckIdle(Ptr< NetDevice > ueDevice, NetDeviceContainer enbDevices)
Check if the UE is in idle state.
void RadioLinkFailureCallback(std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti)
This callback function is executed when radio link failure is detected.
uint32_t m_numEnbs
number of eNodeBs
bool m_isIdealRrc
whether the LTE is configured to use ideal RRC
bool CheckUeExistAtEnb(uint16_t rnti, Ptr< NetDevice > enbDevice)
Check if the UE exist at the eNB.
void ConnectionReleaseAtEnbCallback(std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti)
This callback function is executed when UE context is removed at eNodeB.
std::vector< Vector > m_enbPositionList
Position of the eNodeBs.
void CheckConnected(Ptr< NetDevice > ueDevice, NetDeviceContainer enbDevices)
Check connected function.
void DoRun() override
Setup the simulation according to the configuration set by the class constructor, run it,...
Vector m_ueJumpAwayPosition
Position where the UE(s) would jump.
Ptr< MobilityModel > m_ueMobility
UE mobility model.
LteRadioLinkFailureTestCase(uint32_t numEnbs, uint32_t numUes, Time simTime, bool isIdealRrc, std::vector< Vector > uePositionList, std::vector< Vector > enbPositionList, Vector ueJumpAwayPosition, std::vector< Time > checkConnectedList)
Creates an instance of the radio link failure test case.
~LteRadioLinkFailureTestCase() override
std::vector< Vector > m_uePositionList
Position of the UEs.
LteUeRrc::State m_lastState
The current UE RRC state.
std::vector< Time > m_checkConnectedList
the time at which UEs should have an active RRC connection
std::string BuildNameString(uint32_t numEnbs, uint32_t numUes, bool isIdealRrc)
Builds the test name string based on provided parameter values.
Time m_simTime
simulation time
void ConnectionEstablishedEnbCallback(std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti)
Connection established at eNodeB callback function.
void UeStateTransitionCallback(std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti, LteUeRrc::State oldState, LteUeRrc::State newState)
State transition callback function.
void ConnectionEstablishedUeCallback(std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti)
Connection established at UE callback function.
uint32_t m_numUes
number of UEs
uint32_t m_numOfOutOfSyncIndications
number of out-of-sync indications detected
LteRadioLinkFailureTestSuite()
The LteUeNetDevice class implements the UE net device.
State
The states of the UE RRC entity.
holds a vector of ns3::NetDevice pointers
Smart pointer class similar to boost::intrusive_ptr.
Simulation virtual time values and global simulation resolution.
Every class exported by the ns3 library is enclosed in the ns3 namespace.