A Discrete-Event Network Simulator
API
lte-test-cell-selection.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Budiarto Herman
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: Budiarto Herman <budiarto.herman@magister.fi>
19  *
20  */
21 
22 #ifndef LTE_TEST_CELL_SELECTION_H
23 #define LTE_TEST_CELL_SELECTION_H
24 
25 #include <ns3/test.h>
26 #include <ns3/nstime.h>
27 #include <ns3/node-container.h>
28 #include <ns3/vector.h>
29 #include <ns3/lte-ue-rrc.h>
30 #include <vector>
31 
32 
33 namespace ns3 {
34 
35 class LteUeNetDevice;
36 
37 }
38 
39 using namespace ns3;
40 
41 
49 {
50 public:
52 };
53 
54 
55 
56 
62 {
63 public:
67  struct UeSetup_t
68  {
69  Vector position;
70  bool isCsgMember;
72  uint16_t expectedCellId1;
73  uint16_t expectedCellId2;
74  UeSetup_t (double relPosX, double relPosY, bool isCsgMember, Time checkPoint,
75  uint16_t expectedCellId1, uint16_t expectedCellId2);
76  };
77 
89  LteCellSelectionTestCase (std::string name, bool isEpcMode, bool isIdealRrc,
90  double interSiteDistance,
91  std::vector<UeSetup_t> ueSetupList,
92  int64_t rngRun);
93 
94  virtual ~LteCellSelectionTestCase ();
95 
96 private:
101  virtual void DoRun ();
102 
107  void CheckPoint (Ptr<LteUeNetDevice> ueDev, uint16_t expectedCellId1,
108  uint16_t expectedCellId2);
109 
110  void StateTransitionCallback (std::string context, uint64_t imsi,
111  uint16_t cellId, uint16_t rnti,
112  LteUeRrc::State oldState, LteUeRrc::State newState);
113  void InitialCellSelectionEndOkCallback (std::string context, uint64_t imsi,
114  uint16_t cellId);
115  void InitialCellSelectionEndErrorCallback (std::string context, uint64_t imsi,
116  uint16_t cellId);
117  void ConnectionEstablishedCallback (std::string context, uint64_t imsi,
118  uint16_t cellId, uint16_t rnti);
119 
123  std::vector<UeSetup_t> m_ueSetupList;
124  int64_t m_rngRun;
125 
127  std::vector<LteUeRrc::State> m_lastState;
128 
129 }; // end of class LteCellSelectionTestCase
130 
131 #endif /* LTE_TEST_CELL_SELECTION_H */
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
A set of input parameters for setting up a UE in the simulation.
A suite of tests to run.
Definition: test.h:1333
encapsulates test code
Definition: test.h:1147
bool isCsgMember
Whether UE is allowed access to CSG cell.
Testing the initial cell selection procedure by UE at IDLE state in the beginning of simulation...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
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)...
std::vector< UeSetup_t > m_ueSetupList
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:86
uint16_t expectedCellId2
An alternative cell ID that the UE is expected to attach to (0 means that this no alternative cell is...
Vector position
The position, relative to the inter site distance, where the UE will be spawned in the simulation...
std::vector< LteUeRrc::State > m_lastState
The current UE RRC state.
Time checkPoint
The time in simulation when the UE is verified by the test script.
Test suite for executing the cell selection test cases in without-EPC and with-EPC scenarios...
The LteUeNetDevice class implements the UE net device.