A Discrete-Event Network Simulator
API
lte-test-radio-link-failure.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018 Fraunhofer ESK
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Vignesh Babu <ns3-dev@esk.fraunhofer.de>
19  */
20 
21 #ifndef LTE_TEST_RADIO_LINK_FAILURE_H
22 #define LTE_TEST_RADIO_LINK_FAILURE_H
23 
24 
25 #include <ns3/test.h>
26 #include <ns3/nstime.h>
27 #include <ns3/node-container.h>
28 #include <ns3/net-device-container.h>
29 #include <ns3/vector.h>
30 #include <ns3/lte-ue-rrc.h>
31 #include <vector>
32 
33 
34 namespace ns3 {
35 
36 class LteUeNetDevice;
37 
38 }
39 
40 using namespace ns3;
41 
42 
49 {
50 public:
52 };
53 
60 {
61 public:
75  LteRadioLinkFailureTestCase (uint32_t numEnbs, uint32_t numUes, Time simTime, bool isIdealRrc,
76  std::vector<Vector> uePositionList, std::vector<Vector> enbPositionList,
77  Vector ueJumpAwayPosition, std::vector<Time> checkConnectedList);
78 
79  virtual ~LteRadioLinkFailureTestCase ();
80 
81 private:
89  std::string BuildNameString (uint32_t numEnbs, uint32_t numUes, bool isIdealRrc);
94  virtual void DoRun ();
95 
101  void CheckConnected (Ptr<NetDevice> ueDevice, NetDeviceContainer enbDevices);
102 
108  void CheckIdle (Ptr<NetDevice> ueDevice, NetDeviceContainer enbDevices);
109 
116  bool CheckUeExistAtEnb (uint16_t rnti, Ptr<NetDevice> enbDevice);
117 
127  void UeStateTransitionCallback (std::string context, uint64_t imsi,
128  uint16_t cellId, uint16_t rnti,
129  LteUeRrc::State oldState, LteUeRrc::State newState);
130 
138  void ConnectionEstablishedUeCallback (std::string context, uint64_t imsi,
139  uint16_t cellId, uint16_t rnti);
140 
148  void ConnectionEstablishedEnbCallback (std::string context, uint64_t imsi,
149  uint16_t cellId, uint16_t rnti);
150 
158  void ConnectionReleaseAtEnbCallback (std::string context, uint64_t imsi,
159  uint16_t cellId, uint16_t rnti);
160 
170  void PhySyncDetectionCallback (std::string context, uint64_t imsi, uint16_t rnti,
171  uint16_t cellId, std::string type, uint8_t count);
172 
180  void RadioLinkFailureCallback (std::string context, uint64_t imsi, uint16_t cellId, uint16_t rnti);
181 
187  void JumpAway (Vector UeJumpAwayPositionList);
188 
189  uint32_t m_numEnbs;
190  uint32_t m_numUes;
193  std::vector<Vector> m_uePositionList;
194  std::vector<Vector> m_enbPositionList;
195  std::vector<Time> m_checkConnectedList;
197 
200 
205 
206 }; // end of class LteRadioLinkFailureTestCase
207 
208 #endif /* LTE_TEST_RADIO_LINK_FAILURE_H */
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
A suite of tests to run.
Definition: test.h:1343
encapsulates test code
Definition: test.h:1153
holds a vector of ns3::NetDevice pointers
Every class exported by the ns3 library is enclosed in the ns3 namespace.
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:105
The LteUeNetDevice class implements the UE net device.