A Discrete-Event Network Simulator
API
cc-helper.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2015 Danilo Abrignani
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: Danilo Abrignani <danilo.abrignani@unibo.it>
19  */
20 
21 #ifndef CC_HELPER_H
22 #define CC_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/component-carrier.h>
32 #include <map>
33 
34 namespace ns3 {
35 
36 
57 class CcHelper : public Object
58 {
59 public:
60  CcHelper (void);
61  virtual ~CcHelper (void);
62 
67  static TypeId GetTypeId (void);
68  virtual void DoDispose (void);
69 
80  ComponentCarrier DoCreateSingleCc (uint16_t ulBandwidth, uint16_t dlBandwidth, uint32_t ulEarfcn, uint32_t dlEarfcn, bool isPrimary);
81 
88  void SetCcAttribute (std::string n, const AttributeValue &v);
89 
104  std::map< uint8_t, ComponentCarrier > EquallySpacedCcs ();
105 
111  void SetNumberOfComponentCarriers (uint16_t nCc);
117  void SetUlEarfcn (uint32_t ulEarfcn);
123  void SetDlEarfcn (uint32_t dlEarfcn);
129  void SetDlBandwidth (uint16_t dlBandwidth);
135  void SetUlBandwidth (uint16_t ulBandwidth);
141  uint16_t GetNumberOfComponentCarriers ();
147  uint32_t GetUlEarfcn ();
153  uint32_t GetDlEarfcn ();
159  uint16_t GetDlBandwidth ();
165  uint16_t GetUlBandwidth ();
166 
167 protected:
168  // inherited from Object
169  virtual void DoInitialize (void);
170 
171 private:
182  ComponentCarrier CreateSingleCc (uint16_t ulBandwidth, uint16_t dlBandwidth, uint32_t ulEarfcn, uint32_t dlEarfcn, bool isPrimary);
183 
186 
187  uint32_t m_ulEarfcn;
188  uint32_t m_dlEarfcn;
189  uint16_t m_dlBandwidth;
190  uint16_t m_ulBandwidth;
192 
193 
194 }; // end of `class LteHelper`
195 
196 
197 } // namespace ns3
198 
199 
200 
201 #endif // LTE_HELPER_H
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::CcHelper::~CcHelper
virtual ~CcHelper(void)
Definition: cc-helper.cc:90
ns3::CcHelper::DoCreateSingleCc
ComponentCarrier DoCreateSingleCc(uint16_t ulBandwidth, uint16_t dlBandwidth, uint32_t ulEarfcn, uint32_t dlEarfcn, bool isPrimary)
Create single CC.
Definition: cc-helper.cc:166
ns3::CcHelper::SetUlBandwidth
void SetUlBandwidth(uint16_t ulBandwidth)
Set UL bandwidth.
Definition: cc-helper.cc:134
ns3::CcHelper::GetDlEarfcn
uint32_t GetDlEarfcn()
Get DL EARFCN.
Definition: cc-helper.cc:150
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::CcHelper::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition: cc-helper.cc:52
ns3::CcHelper::SetNumberOfComponentCarriers
void SetNumberOfComponentCarriers(uint16_t nCc)
Set number of CCs.
Definition: cc-helper.cc:110
ns3::CcHelper::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition: cc-helper.cc:96
ns3::AttributeValue
Hold a value for an Attribute.
Definition: attribute.h:69
ns3::CcHelper::m_numberOfComponentCarriers
uint16_t m_numberOfComponentCarriers
Number of component carriers.
Definition: cc-helper.h:191
ns3::CcHelper::EquallySpacedCcs
std::map< uint8_t, ComponentCarrier > EquallySpacedCcs()
EquallySpacedCcs() create a valid std::map< uint8_t, Ptr<ComponentCarrier> > The Primary Component Ca...
Definition: cc-helper.cc:172
ns3::CcHelper::GetNumberOfComponentCarriers
uint16_t GetNumberOfComponentCarriers()
Get number of component carriers.
Definition: cc-helper.cc:140
ns3::CcHelper::SetDlBandwidth
void SetDlBandwidth(uint16_t dlBandwidth)
Set DL bandwidth.
Definition: cc-helper.cc:128
ns3::CcHelper::CcHelper
CcHelper(void)
Definition: cc-helper.cc:40
ns3::CcHelper::m_ccFactory
ObjectFactory m_ccFactory
Factory for each Carrier Component.
Definition: cc-helper.h:185
ns3::CcHelper
Creation and configuration of Component Carrier entities.
Definition: cc-helper.h:58
ns3::CcHelper::m_dlEarfcn
uint32_t m_dlEarfcn
Downlink EARFCN.
Definition: cc-helper.h:188
ns3::ComponentCarrier
ComponentCarrier Object, it defines a single Carrier This is the parent class for both ComponentCarri...
Definition: component-carrier.h:40
ns3::CcHelper::DoInitialize
virtual void DoInitialize(void)
Initialize() implementation.
Definition: cc-helper.cc:47
ns3::Object
A base class which provides memory management and object aggregation.
Definition: object.h:88
ns3::ObjectFactory
Instantiate subclasses of ns3::Object.
Definition: object-factory.h:48
ns3::CcHelper::GetDlBandwidth
uint16_t GetDlBandwidth()
Get DL bandwidth.
Definition: cc-helper.cc:155
ns3::CcHelper::m_ulBandwidth
uint16_t m_ulBandwidth
Uplink Bandwidth.
Definition: cc-helper.h:190
ns3::CcHelper::SetUlEarfcn
void SetUlEarfcn(uint32_t ulEarfcn)
Set UL EARFCN.
Definition: cc-helper.cc:116
ns3::CcHelper::m_ulEarfcn
uint32_t m_ulEarfcn
Uplink EARFCN.
Definition: cc-helper.h:187
ns3::CcHelper::GetUlBandwidth
uint16_t GetUlBandwidth()
Get UL bandwidth.
Definition: cc-helper.cc:160
ns3::CcHelper::GetUlEarfcn
uint32_t GetUlEarfcn()
Get UL EARFCN.
Definition: cc-helper.cc:145
ns3::CcHelper::CreateSingleCc
ComponentCarrier CreateSingleCc(uint16_t ulBandwidth, uint16_t dlBandwidth, uint32_t ulEarfcn, uint32_t dlEarfcn, bool isPrimary)
Create a single component carrier.
Definition: cc-helper.cc:221
ns3::CcHelper::m_dlBandwidth
uint16_t m_dlBandwidth
Downlink Bandwidth.
Definition: cc-helper.h:189
sample-rng-plot.n
n
Definition: sample-rng-plot.py:37
ns3::CcHelper::SetDlEarfcn
void SetDlEarfcn(uint32_t dlEarfcn)
Set DL EARFCN.
Definition: cc-helper.cc:122
ns3::CcHelper::SetCcAttribute
void SetCcAttribute(std::string n, const AttributeValue &v)
Set an attribute for the Component Carrier to be created.
Definition: cc-helper.cc:103