A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::LteHexGridEnbTopologyHelper Class Reference

This helper class allows to easily create a topology with eNBs grouped in three-sector sites laid out on an hexagonal grid. More...

#include "lte-hex-grid-enb-topology-helper.h"

+ Inheritance diagram for ns3::LteHexGridEnbTopologyHelper:
+ Collaboration diagram for ns3::LteHexGridEnbTopologyHelper:

Public Member Functions

 LteHexGridEnbTopologyHelper ()
 
 ~LteHexGridEnbTopologyHelper () override
 
void DoDispose () override
 Destructor implementation.
 
void SetLteHelper (Ptr< LteHelper > h)
 Set the LteHelper to be used to actually create the EnbNetDevices.
 
NetDeviceContainer SetPositionAndInstallEnbDevice (NodeContainer c)
 Position the nodes on a hex grid and install the corresponding EnbNetDevices with antenna boresight configured properly.
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Attributes

double m_d
 The distance [m] between nearby sites.
 
uint32_t m_gridWidth
 The number of sites in even rows (odd rows will have one additional site)
 
Ptr< LteHelperm_lteHelper
 Pointer to LteHelper object.
 
double m_offset
 The offset [m] in the position for the node of each sector with respect to the center of the three-sector site.
 
uint32_t m_siteHeight
 The height [m] of each site.
 
double m_xMin
 The x coordinate where the hex grid starts.
 
double m_yMin
 The y coordinate where the hex grid starts.
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

This helper class allows to easily create a topology with eNBs grouped in three-sector sites laid out on an hexagonal grid.

Introspection did not find any typical Config paths.

The layout is done row-wise.


Attributes

  • GridWidth: The number of sites in even rows (odd rows will have one additional site).
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • InterSiteDistance: The distance [m] between nearby sites
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 500
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • MinX: The x coordinate where the hex grid starts.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • MinY: The y coordinate where the hex grid starts.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • SectorOffset: The offset [m] in the position for the node of each sector with respect to the center of the three-sector site
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.5
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • SiteHeight: The height [m] of each site
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 30
    • Flags: constructwriteread
    • Support level: SUPPORTED

No TraceSources are defined for this type.
Size of this type is 104 bytes (on a 64-bit architecture).

Definition at line 25 of file lte-hex-grid-enb-topology-helper.h.

Constructor & Destructor Documentation

◆ LteHexGridEnbTopologyHelper()

ns3::LteHexGridEnbTopologyHelper::LteHexGridEnbTopologyHelper ( )

Definition at line 27 of file lte-hex-grid-enb-topology-helper.cc.

References NS_LOG_FUNCTION.

◆ ~LteHexGridEnbTopologyHelper()

ns3::LteHexGridEnbTopologyHelper::~LteHexGridEnbTopologyHelper ( )
override

Definition at line 32 of file lte-hex-grid-enb-topology-helper.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ DoDispose()

void ns3::LteHexGridEnbTopologyHelper::DoDispose ( )
overridevirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 80 of file lte-hex-grid-enb-topology-helper.cc.

References ns3::Object::DoDispose(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ GetTypeId()

TypeId ns3::LteHexGridEnbTopologyHelper::GetTypeId ( )
static

Register this type.

Returns
The object TypeId.

Definition at line 38 of file lte-hex-grid-enb-topology-helper.cc.

References m_d, m_gridWidth, m_offset, m_siteHeight, m_xMin, m_yMin, ns3::MakeDoubleAccessor(), ns3::MakeDoubleChecker(), ns3::MakeUintegerAccessor(), ns3::MakeUintegerChecker(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ SetLteHelper()

void ns3::LteHexGridEnbTopologyHelper::SetLteHelper ( Ptr< LteHelper > h)

Set the LteHelper to be used to actually create the EnbNetDevices.

Note
if no EpcHelper is ever set, then LteHexGridEnbTopologyHelper will default to creating an LTE-only simulation with no EPC, using LteRlcSm as the RLC model, and without supporting any IP networking. In other words, it will be a radio-level simulation involving only LTE PHY and MAC and the FF Scheduler, with a saturation traffic model for the RLC.
Parameters
ha pointer to the EpcHelper to be used

Definition at line 87 of file lte-hex-grid-enb-topology-helper.cc.

References m_lteHelper, and NS_LOG_FUNCTION.

◆ SetPositionAndInstallEnbDevice()

NetDeviceContainer ns3::LteHexGridEnbTopologyHelper::SetPositionAndInstallEnbDevice ( NodeContainer c)

Position the nodes on a hex grid and install the corresponding EnbNetDevices with antenna boresight configured properly.

Parameters
cthe node container where the devices are to be installed
Returns
the NetDeviceContainer with the newly created devices

Definition at line 94 of file lte-hex-grid-enb-topology-helper.cc.

References ns3::NetDeviceContainer::Add(), ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), m_d, m_gridWidth, m_lteHelper, m_offset, m_siteHeight, m_xMin, m_yMin, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_d

double ns3::LteHexGridEnbTopologyHelper::m_d
private

The distance [m] between nearby sites.

Definition at line 77 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().

◆ m_gridWidth

uint32_t ns3::LteHexGridEnbTopologyHelper::m_gridWidth
private

The number of sites in even rows (odd rows will have one additional site)

Definition at line 93 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().

◆ m_lteHelper

Ptr<LteHelper> ns3::LteHexGridEnbTopologyHelper::m_lteHelper
private

Pointer to LteHelper object.

Definition at line 66 of file lte-hex-grid-enb-topology-helper.h.

Referenced by SetLteHelper(), and SetPositionAndInstallEnbDevice().

◆ m_offset

double ns3::LteHexGridEnbTopologyHelper::m_offset
private

The offset [m] in the position for the node of each sector with respect to the center of the three-sector site.

Definition at line 72 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().

◆ m_siteHeight

uint32_t ns3::LteHexGridEnbTopologyHelper::m_siteHeight
private

The height [m] of each site.

Definition at line 98 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().

◆ m_xMin

double ns3::LteHexGridEnbTopologyHelper::m_xMin
private

The x coordinate where the hex grid starts.

Definition at line 82 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().

◆ m_yMin

double ns3::LteHexGridEnbTopologyHelper::m_yMin
private

The y coordinate where the hex grid starts.

Definition at line 87 of file lte-hex-grid-enb-topology-helper.h.

Referenced by GetTypeId(), and SetPositionAndInstallEnbDevice().


The documentation for this class was generated from the following files: