A Discrete-Event Network Simulator
API
lte-test-cell-selection.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Budiarto Herman
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: Budiarto Herman <budiarto.herman@magister.fi>
18  *
19  */
20 
21 #ifndef LTE_TEST_CELL_SELECTION_H
22 #define LTE_TEST_CELL_SELECTION_H
23 
24 #include <ns3/lte-ue-rrc.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 
32 namespace ns3
33 {
34 
35 class LteUeNetDevice;
36 
37 }
38 
39 using namespace ns3;
40 
48 {
49  public:
51 };
52 
60 {
61  public:
65  struct UeSetup_t
66  {
67  Vector position;
69  bool isCsgMember;
71  uint16_t expectedCellId1;
73  uint16_t expectedCellId2;
75 
86  UeSetup_t(double relPosX,
87  double relPosY,
88  bool isCsgMember,
89  Time checkPoint,
90  uint16_t expectedCellId1,
91  uint16_t expectedCellId2);
92  };
93 
104  LteCellSelectionTestCase(std::string name,
105  bool isEpcMode,
106  bool isIdealRrc,
107  double interSiteDistance,
108  std::vector<UeSetup_t> ueSetupList);
109 
110  ~LteCellSelectionTestCase() override;
111 
112  private:
117  void DoRun() override;
118 
126  void CheckPoint(Ptr<LteUeNetDevice> ueDev, uint16_t expectedCellId1, uint16_t expectedCellId2);
127 
137  void StateTransitionCallback(std::string context,
138  uint64_t imsi,
139  uint16_t cellId,
140  uint16_t rnti,
141  LteUeRrc::State oldState,
142  LteUeRrc::State newState);
149  void InitialCellSelectionEndOkCallback(std::string context, uint64_t imsi, uint16_t cellId);
156  void InitialCellSelectionEndErrorCallback(std::string context, uint64_t imsi, uint16_t cellId);
164  void ConnectionEstablishedCallback(std::string context,
165  uint64_t imsi,
166  uint16_t cellId,
167  uint16_t rnti);
168 
169  bool m_isEpcMode;
172  std::vector<UeSetup_t> m_ueSetupList;
173 
175  std::vector<LteUeRrc::State> m_lastState;
176 
177 }; // end of class LteCellSelectionTestCase
178 
179 #endif /* LTE_TEST_CELL_SELECTION_H */
Testing the initial cell selection procedure by UE at IDLE state in the beginning of simulation.
std::vector< UeSetup_t > m_ueSetupList
UE setup list.
std::vector< LteUeRrc::State > m_lastState
The current UE RRC state.
bool m_isEpcMode
whether the LTE configuration in test is using EPC
double m_interSiteDistance
inter site distance
bool m_isIdealRrc
whether the LTE is configured to use ideal RRC
Test suite for executing the cell selection test cases in without-EPC and with-EPC scenarios.
The LteUeNetDevice class implements the UE net device.
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:99
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
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.
A set of input parameters for setting up a UE in the simulation.
Vector position
The position, relative to the inter site distance, where the UE will be spawned in the simulation.
uint16_t expectedCellId2
An alternative cell ID that the UE is expected to attach to (0 means that this no alternative cell is...
uint16_t expectedCellId1
The cell ID that the UE is expected to attach to (0 means that the UE should not attach to any cell).
bool isCsgMember
Whether UE is allowed access to CSG cell.
Time checkPoint
The time in simulation when the UE is verified by the test script.