26 #include <ns3/config.h> 27 #include <ns3/simulator.h> 28 #include <ns3/names.h> 29 #include <ns3/net-device.h> 30 #include <ns3/net-device-container.h> 32 #include <ns3/node-container.h> 33 #include <ns3/eps-bearer.h> 34 #include <ns3/phy-stats-calculator.h> 35 #include <ns3/phy-tx-stats-calculator.h> 36 #include <ns3/phy-rx-stats-calculator.h> 37 #include <ns3/mac-stats-calculator.h> 38 #include <ns3/radio-bearer-stats-calculator.h> 39 #include <ns3/radio-bearer-stats-connector.h> 40 #include <ns3/epc-tft.h> 41 #include <ns3/mobility-model.h> 42 #include <ns3/component-carrier-enb.h> 43 #include <ns3/cc-helper.h> 51 class SpectrumChannel;
53 class PropagationLossModel;
54 class SpectrumPropagationLossModel;
715 uint16_t targetCellId);
857 #endif // LTE_HELPER_H void SetFadingModel(std::string type)
Set the type of fading model to be used in both DL and UL.
Ptr< Object > m_uplinkPathlossModel
The path loss model used in the uplink channel.
Simulation virtual time values and global simulation resolution.
void SetPathlossModelAttribute(std::string n, const AttributeValue &v)
Set an attribute for the path loss models to be created.
void EnableDlRxPhyTraces(void)
Enable trace sinks for DL reception PHY layer.
Smart pointer class similar to boost::intrusive_ptr.
RadioBearerStatsConnector m_radioBearerStatsConnector
Connects RLC and PDCP statistics containers to appropriate trace sources.
Ptr< NetDevice > InstallSingleEnbDevice(Ptr< Node > n)
Create an eNodeB device (LteEnbNetDevice) on the given node.
static TypeId GetTypeId(void)
Register this type.
NetDeviceContainer InstallEnbDevice(NodeContainer c)
Create a set of eNodeB devices.
void EnableLogComponents(void)
Enables full-blown logging for major components of the LENA architecture.
void HandoverRequest(Time hoTime, Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, Ptr< NetDevice > targetEnbDev)
Manually trigger an X2-based handover.
bool m_fadingStreamsAssigned
True if a random variable stream number has been assigned for the fading model.
ObjectFactory m_fadingModelFactory
Factory of fading model object for both the downlink and uplink channels.
Hold a value for an Attribute.
void EnableDlPhyTraces(void)
Enable trace sinks for DL PHY layer.
std::string GetEnbComponentCarrierManagerType() const
void DoComponentCarrierConfigure(uint32_t ulEarfcn, uint32_t dlEarfcn, uint8_t ulbw, uint8_t dlbw)
Configure the component carriers.
void SetUeAntennaModelAttribute(std::string n, const AttributeValue &v)
Set an attribute for the UE antenna model to be created.
std::map< uint8_t, ComponentCarrier > m_componentCarrierPhyParams
This contains all the information about each component carrier.
void Attach(NetDeviceContainer ueDevices)
Enables automatic attachment of a set of UE devices to a suitable cell using Idle mode initial cell s...
void SetEnbComponentCarrierManagerAttribute(std::string n, const AttributeValue &v)
Set an attribute for the enb component carrier manager to be created.
void EnableRlcTraces(void)
Enable trace sinks for RLC layer.
bool m_usePdschForCqiGeneration
The UsePdschForCqiGeneration attribute.
Ptr< PhyStatsCalculator > m_phyStats
Container of PHY layer statistics.
Ptr< PhyRxStatsCalculator > m_phyRxStats
Container of PHY layer statistics related to reception.
std::string m_fadingModelType
Name of fading model type, e.g., "ns3::TraceFadingLossModel".
void SetUeDeviceAttribute(std::string n, const AttributeValue &v)
Set an attribute for the UE devices (LteUeNetDevice) to be created.
void SetUeAntennaModelType(std::string type)
Set the type of antenna model to be used by UE devices.
ObjectFactory m_enbComponentCarrierManagerFactory
Factory of enb component carrier manager object.
Ptr< MacStatsCalculator > m_macStats
Container of MAC layer statistics.
std::string GetHandoverAlgorithmType() const
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used.
void ActivateDataRadioBearer(NetDeviceContainer ueDevices, EpsBearer bearer)
Activate a Data Radio Bearer on a given UE devices (for LTE-only simulation).
void SetEnbComponentCarrierManagerType(std::string type)
Set the type of carrier component algorithm to be used by eNodeB devices.
ObjectFactory m_channelFactory
Factory of both the downlink and uplink LTE channels.
uint8_t ActivateDedicatedEpsBearer(NetDeviceContainer ueDevices, EpsBearer bearer, Ptr< EpcTft > tft)
Activate a dedicated EPS bearer on a given set of UE devices.
void ChannelModelInitialization(void)
Function that performs a channel model initialization of all component carriers.
Ptr< SpectrumChannel > GetDownlinkSpectrumChannel(void) const
void SetHandoverAlgorithmType(std::string type)
Set the type of handover algorithm to be used by eNodeB devices.
void EnableUlRxPhyTraces(void)
Enable trace sinks for UL reception PHY layer.
void SetFfrAlgorithmType(std::string type)
Set the type of FFR algorithm to be used by eNodeB devices.
void SetSchedulerType(std::string type)
Set the type of scheduler to be used by eNodeB devices.
Ptr< RadioBearerStatsCalculator > m_rlcStats
Container of RLC layer statistics.
void EnablePdcpTraces(void)
Enable trace sinks for PDCP layer.
void AttachToClosestEnb(NetDeviceContainer ueDevices, NetDeviceContainer enbDevices)
Manual attachment of a set of UE devices to the network via the closest eNodeB (with respect to dista...
Ptr< Object > m_downlinkPathlossModel
The path loss model used in the downlink channel.
Creation and configuration of LTE entities.
This class contains the specification of EPS Bearers.
ObjectFactory m_pathlossModelFactory
Factory of path loss model object.
void DeActivateDedicatedEpsBearer(Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t bearerId)
Manually trigger dedicated bearer de-activation at specific simulation time.
void SetHandoverAlgorithmAttribute(std::string n, const AttributeValue &v)
Set an attribute for the handover algorithm to be created.
void SetUeComponentCarrierManagerAttribute(std::string n, const AttributeValue &v)
Set an attribute for the ue component carrier manager to be created.
ObjectFactory m_ueComponentCarrierManagerFactory
Factory of ue component carrier manager object.
void EnableTraces(void)
Enables trace sinks for PHY, MAC, RLC and PDCP.
void SetSchedulerAttribute(std::string n, const AttributeValue &v)
Set an attribute for the scheduler to be created.
Ptr< NetDevice > InstallSingleUeDevice(Ptr< Node > n)
Create a UE device (LteUeNetDevice) on the given node.
uint64_t m_imsiCounter
Keep track of the number of IMSI allocated.
ObjectFactory m_enbAntennaModelFactory
Factory of antenna object for eNodeB.
holds a vector of ns3::NetDevice pointers
void SetPathlossModelType(TypeId type)
Set the type of path loss model to be used for both DL and UL channels.
uint16_t m_cellIdCounter
Keep track of the number of cell ID allocated.
void EnablePhyTraces(void)
Enable trace sinks for PHY layer.
bool m_isAnrEnabled
The AnrEnabled attribute.
void SetUeComponentCarrierManagerType(std::string type)
Set the type of Component Carrier Manager to be used by Ue devices.
ObjectFactory m_handoverAlgorithmFactory
Factory of handover algorithm object.
void SetEnbAntennaModelType(std::string type)
Set the type of antenna model to be used by eNodeB devices.
void SetSpectrumChannelType(std::string type)
Set the type of spectrum channel to be used in both DL and UL.
void SetFadingModelAttribute(std::string n, const AttributeValue &v)
Set an attribute for the fading model to be created (both DL and UL).
void EnableDlMacTraces(void)
Enable trace sinks for DL MAC layer.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
void EnableUlTxPhyTraces(void)
Enable trace sinks for UL transmission PHY layer.
uint16_t m_noOfCcs
Number of component carriers that will be installed by default at eNodeB and UE devices.
Ptr< SpectrumChannel > m_uplinkChannel
The uplink LTE channel used in the simulation.
void AddX2Interface(NodeContainer enbNodes)
Create an X2 interface between all the eNBs in a given set.
std::string GetUeComponentCarrierManagerType() const
ObjectFactory m_schedulerFactory
Factory of MAC scheduler object.
void EnableUlPhyTraces(void)
Enable trace sinks for UL PHY layer.
void EnableDlTxPhyTraces(void)
Enable trace sinks for DL transmission PHY layer.
Ptr< SpectrumPropagationLossModel > m_fadingModule
The fading model used in both the downlink and uplink channels.
void EnableUlMacTraces(void)
Enable trace sinks for UL MAC layer.
std::string GetFfrAlgorithmType() const
Ptr< EpcHelper > m_epcHelper
Helper which provides implementation of core network.
Ptr< RadioBearerStatsCalculator > GetRlcStats(void)
NetDeviceContainer InstallUeDevice(NodeContainer c)
Create a set of UE devices.
Ptr< PhyTxStatsCalculator > m_phyTxStats
Container of PHY layer statistics related to transmission.
Ptr< RadioBearerStatsCalculator > GetPdcpStats(void)
virtual void DoDispose(void)
Destructor implementation.
std::string GetSchedulerType() const
Instantiate subclasses of ns3::Object.
ObjectFactory m_ffrAlgorithmFactory
Factory of FFR (frequency reuse) algorithm object.
void DoHandoverRequest(Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, uint16_t targetCellId)
The actual function to trigger a manual handover.
void SetEpcHelper(Ptr< EpcHelper > h)
Set the EpcHelper to be used to setup the EPC network in conjunction with the setup of the LTE radio ...
void SetEnbAntennaModelAttribute(std::string n, const AttributeValue &v)
Set an attribute for the eNodeB antenna model to be created.
ObjectFactory m_ueNetDeviceFactory
Factory for LteUeNetDevice objects.
void SetSpectrumChannelAttribute(std::string n, const AttributeValue &v)
Set an attribute for the spectrum channel to be created (both DL and UL).
virtual void DoInitialize(void)
Initialize() implementation.
bool m_useCa
The UseCa attribute.
void EnableMacTraces(void)
Enable trace sinks for MAC layer.
A base class which provides memory management and object aggregation.
Ptr< SpectrumChannel > GetUplinkSpectrumChannel(void) const
void DoDeActivateDedicatedEpsBearer(Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t bearerId)
The actual function to trigger a manual bearer de-activation.
Ptr< RadioBearerStatsCalculator > m_pdcpStats
Container of PDCP layer statistics.
ObjectFactory m_ueAntennaModelFactory
Factory of antenna object for UE.
This class is very useful when user needs to collect statistics from PDCP and RLC.
a unique identifier for an interface.
void SetFfrAlgorithmAttribute(std::string n, const AttributeValue &v)
Set an attribute for the FFR algorithm to be created.
ObjectFactory m_enbNetDeviceFactory
Factory of LteEnbNetDevice objects.
Ptr< SpectrumChannel > m_downlinkChannel
This function create the component carrier based on provided configuration parameters.
void SetEnbDeviceAttribute(std::string n, const AttributeValue &v)
Set an attribute for the eNodeB devices (LteEnbNetDevice) to be created.
bool m_useIdealRrc
The UseIdealRrc attribute.