A Discrete-Event Network Simulator
API
lte-test-radio-link-failure.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Fraunhofer ESK
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Vignesh Babu <ns3-dev@esk.fraunhofer.de>
18 */
19
20#ifndef LTE_TEST_RADIO_LINK_FAILURE_H
21#define LTE_TEST_RADIO_LINK_FAILURE_H
22
23#include <ns3/lte-ue-rrc.h>
24#include <ns3/net-device-container.h>
25#include <ns3/node-container.h>
26#include <ns3/nstime.h>
27#include <ns3/test.h>
28#include <ns3/vector.h>
29
30#include <vector>
31
32namespace ns3
33{
34
35class LteUeNetDevice;
36
37}
38
39using namespace ns3;
40
47{
48 public:
50};
51
58{
59 public:
74 uint32_t numUes,
75 Time simTime,
76 bool isIdealRrc,
77 std::vector<Vector> uePositionList,
78 std::vector<Vector> enbPositionList,
79 Vector ueJumpAwayPosition,
80 std::vector<Time> checkConnectedList);
81
83
84 private:
92 std::string BuildNameString(uint32_t numEnbs, uint32_t numUes, bool isIdealRrc);
97 void DoRun() override;
98
104 void CheckConnected(Ptr<NetDevice> ueDevice, NetDeviceContainer enbDevices);
105
111 void CheckIdle(Ptr<NetDevice> ueDevice, NetDeviceContainer enbDevices);
112
119 bool CheckUeExistAtEnb(uint16_t rnti, Ptr<NetDevice> enbDevice);
120
130 void UeStateTransitionCallback(std::string context,
131 uint64_t imsi,
132 uint16_t cellId,
133 uint16_t rnti,
134 LteUeRrc::State oldState,
135 LteUeRrc::State newState);
136
144 void ConnectionEstablishedUeCallback(std::string context,
145 uint64_t imsi,
146 uint16_t cellId,
147 uint16_t rnti);
148
156 void ConnectionEstablishedEnbCallback(std::string context,
157 uint64_t imsi,
158 uint16_t cellId,
159 uint16_t rnti);
160
168 void ConnectionReleaseAtEnbCallback(std::string context,
169 uint64_t imsi,
170 uint16_t cellId,
171 uint16_t rnti);
172
183 void PhySyncDetectionCallback(std::string context,
184 uint64_t imsi,
185 uint16_t rnti,
186 uint16_t cellId,
187 std::string type,
188 uint8_t count);
189
197 void RadioLinkFailureCallback(std::string context,
198 uint64_t imsi,
199 uint16_t cellId,
200 uint16_t rnti);
201
207 void JumpAway(Vector UeJumpAwayPositionList);
208
213 std::vector<Vector> m_uePositionList;
214 std::vector<Vector> m_enbPositionList;
215 std::vector<Time>
218
221
226
227}; // end of class LteRadioLinkFailureTestCase
228
229#endif /* LTE_TEST_RADIO_LINK_FAILURE_H */
The LteUeNetDevice class implements the UE net device.
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:102
holds a vector of ns3::NetDevice pointers
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:78
encapsulates test code
Definition: test.h:1060
A suite of tests to run.
Definition: test.h:1256
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Every class exported by the ns3 library is enclosed in the ns3 namespace.