A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lte-helper.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Nicola Baldo <nbaldo@cttc.es>
19  */
20 
21 #ifndef LTE_HELPER_H
22 #define LTE_HELPER_H
23 
24 #include <ns3/config.h>
25 #include <ns3/simulator.h>
26 #include <ns3/names.h>
27 #include <ns3/net-device.h>
28 #include <ns3/net-device-container.h>
29 #include <ns3/node.h>
30 #include <ns3/node-container.h>
31 #include <ns3/eps-bearer.h>
32 #include <ns3/mac-stats-calculator.h>
33 #include <ns3/radio-bearer-stats-calculator.h>
34 #include <ns3/epc-tft.h>
35 #include <ns3/mobility-model.h>
36 
37 namespace ns3 {
38 
39 
40 class LteUePhy;
41 class LteEnbPhy;
42 class SpectrumChannel;
43 class EpcHelper;
44 class PropagationLossModel;
45 
46 
51 class LteHelper : public Object
52 {
53 public:
54  LteHelper (void);
55  virtual ~LteHelper (void);
56 
57  static TypeId GetTypeId (void);
58  virtual void DoDispose (void);
59 
60 
75 
81  void SetPathlossModelType (std::string type);
82 
89  void SetPathlossModelAttribute (std::string n, const AttributeValue &v);
90 
95  void SetSchedulerType (std::string type);
96 
103  void SetSchedulerAttribute (std::string n, const AttributeValue &v);
104 
111  void SetEnbDeviceAttribute (std::string n, const AttributeValue &v);
112 
117  void SetEnbAntennaModelType (std::string type);
118 
125  void SetEnbAntennaModelAttribute (std::string n, const AttributeValue &v);
126 
131  void SetUeAntennaModelType (std::string type);
132 
139  void SetUeAntennaModelAttribute (std::string n, const AttributeValue &v);
140 
145  void SetSpectrumChannelType (std::string type);
146 
153  void SetSpectrumChannelAttribute (std::string n, const AttributeValue &v);
162 
171 
178  void Attach (NetDeviceContainer ueDevices, Ptr<NetDevice> enbDevice);
179 
186  void Attach (Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice);
187 
194  void AttachToClosestEnb (NetDeviceContainer ueDevices, NetDeviceContainer enbDevices);
195 
202  void AttachToClosestEnb (Ptr<NetDevice> ueDevice, NetDeviceContainer enbDevices);
203 
211  void ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft);
212 
220  void ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft);
221 
228  TypeId GetRlcType (EpsBearer bearer);
229 
235  void SetFadingModel (std::string model);
236 
240  void SetFadingModelAttribute (std::string n, const AttributeValue &v);
241 
246  void EnableLogComponents (void);
247 
251  void EnableTraces (void);
252 
256  void EnableMacTraces (void);
257 
261  void EnableDlMacTraces (void);
262 
266  void EnableUlMacTraces (void);
267 
271  void EnableRlcTraces (void);
272 
276  void EnableDlRlcTraces (void);
277 
281  void EnableUlRlcTraces (void);
282 
288 
292  void EnablePdcpTraces (void);
293 
297  void EnableDlPdcpTraces (void);
298 
302  void EnableUlPdcpTraces (void);
303 
309 
313  PER_BASED = 4};
314 
326  int64_t AssignStreams (NetDeviceContainer c, int64_t stream);
327 
328 protected:
329  // inherited from Object
330  virtual void DoStart (void);
331 
332 private:
335 
338 
341 
347 
350 
352 
353  std::string m_fadingModelType;
355 
359 
361 
363 
364 };
365 
366 
367 } // namespace ns3
368 
369 
370 
371 #endif // LTE_HELPER_H