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
34namespace ns3 {
35
36class LteUeNetDevice;
37
38}
39
40using namespace ns3;
41
42
49{
50public:
52};
53
60{
61public:
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
80
81private:
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
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 */
The LteUeNetDevice class implements the UE net device.
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:106
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:994
A suite of tests to run.
Definition: test.h:1188
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
Every class exported by the ns3 library is enclosed in the ns3 namespace.