A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-hex-grid-enb-topology-helper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Nicola Baldo <nbaldo@cttc.es>
7 */
8
9#ifndef LTE_HEX_GRID_ENB_TOPOLOGY_HELPER_H
10#define LTE_HEX_GRID_ENB_TOPOLOGY_HELPER_H
11
12#include "lte-helper.h"
13
14#include "ns3/wraparound-model.h"
15
16namespace ns3
17{
18
19/**
20 * @ingroup lte
21 *
22 * This helper class allows to easily create a topology with eNBs
23 * grouped in three-sector sites laid out on an hexagonal grid. The
24 * layout is done row-wise.
25 *
26 */
28{
29 public:
32
33 /**
34 * Register this type.
35 * @return The object TypeId.
36 */
37 static TypeId GetTypeId();
38 void DoDispose() override;
39
40 /**
41 * Set the LteHelper to be used to actually create the EnbNetDevices
42 *
43 * @note if no EpcHelper is ever set, then LteHexGridEnbTopologyHelper will default
44 * to creating an LTE-only simulation with no EPC, using LteRlcSm as
45 * the RLC model, and without supporting any IP networking. In other
46 * words, it will be a radio-level simulation involving only LTE PHY
47 * and MAC and the FF Scheduler, with a saturation traffic model for
48 * the RLC.
49 *
50 * @param h a pointer to the EpcHelper to be used
51 */
53
54 /**
55 * Position the nodes on a hex grid and install the corresponding
56 * EnbNetDevices with antenna boresight configured properly
57 *
58 * @param c the node container where the devices are to be installed
59 *
60 * @return the NetDeviceContainer with the newly created devices
61 */
63
64 /**
65 * @brief Get the configured wraparound model.
66 * If wraparound is not enabled, a null pointer is returned instead.
67 * @return a pointer to the wraparound model
68 */
70
71 private:
72 /**
73 * Pointer to LteHelper object
74 */
76
77 /**
78 * The offset [m] in the position for the node of each sector with
79 * respect to the center of the three-sector site
80 */
81 double m_offset;
82
83 /**
84 * The distance [m] between nearby sites
85 */
86 double m_d;
87
88 /**
89 * The x coordinate where the hex grid starts
90 */
91 double m_xMin;
92
93 /**
94 * The y coordinate where the hex grid starts
95 */
96 double m_yMin;
97
98 /**
99 * The number of sites in even rows (odd rows will have
100 * one additional site)
101 */
103
104 /**
105 * The height [m] of each site
106 */
108
109 /**
110 * Boolean flag indicating whether to install or not wraparound model
111 */
113
114 /**
115 * Wraparound model pointer
116 */
118};
119
120} // namespace ns3
121
122#endif // LTE_HEX_GRID_ENB_TOPOLOGY_HELPER_H
void DoDispose() override
Destructor implementation.
bool m_installWraparound
Boolean flag indicating whether to install or not wraparound model.
static TypeId GetTypeId()
Register this type.
double m_d
The distance [m] between nearby sites.
Ptr< WraparoundModel > GetWraparoundModel() const
Get the configured wraparound model.
double m_xMin
The x coordinate where the hex grid starts.
Ptr< LteHelper > m_lteHelper
Pointer to LteHelper object.
double m_yMin
The y coordinate where the hex grid starts.
uint32_t m_gridWidth
The number of sites in even rows (odd rows will have one additional site)
NetDeviceContainer SetPositionAndInstallEnbDevice(NodeContainer c)
Position the nodes on a hex grid and install the corresponding EnbNetDevices with antenna boresight c...
double m_offset
The offset [m] in the position for the node of each sector with respect to the center of the three-se...
void SetLteHelper(Ptr< LteHelper > h)
Set the LteHelper to be used to actually create the EnbNetDevices.
uint32_t m_siteHeight
The height [m] of each site.
Ptr< WraparoundModel > m_wraparoundModel
Wraparound model pointer.
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
Object()
Constructor.
Definition object.cc:96
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:67
a unique identifier for an interface.
Definition type-id.h:49
Every class exported by the ns3 library is enclosed in the ns3 namespace.