ns-3
|
#include <lte-enb-phy.h>
Public Member Functions | |
LteEnbPhy () | |
LteEnbPhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual void | DoStart (void) |
virtual void | DoDispose (void) |
LteEnbPhySapProvider * | GetLteEnbPhySapProvider () |
Get the PHY SAP provider. | |
void | SetLteEnbPhySapUser (LteEnbPhySapUser *s) |
Set the PHY SAP User. | |
void | SetTxPower (double pow) |
double | GetTxPower () const |
void | SetNoiseFigure (double pow) |
double | GetNoiseFigure () const |
void | SetMacChDelay (uint8_t delay) |
uint8_t | GetMacChDelay (void) const |
virtual void | DoSendMacPdu (Ptr< Packet > p) |
Queue the MAC PDU to be sent. | |
virtual uint8_t | DoGetMacChTtiDelay () |
void | DoSetDownlinkSubChannels () |
do some operation after the set of a list of DL sub channels | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for TX. | |
void | CalcChannelQualityForUe (std::vector< double > sinr, Ptr< LteSpectrumPhy > ue) |
Calculate the channel quality for a given UE. | |
virtual void | ReceiveIdealControlMessage (Ptr< IdealControlMessage > msg) |
Send the control message. | |
UlCqi_s | CreateUlCqiReport (const SpectrumValue &sinr) |
Create the UL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB. | |
void | DoSendIdealControlMessage (Ptr< IdealControlMessage > msg) |
bool | AddUePhy (uint16_t rnti, Ptr< LteUePhy > phy) |
bool | DeleteUePhy (uint16_t rnti) |
virtual void | DoSetTransmissionMode (uint16_t rnti, uint8_t txMode) |
void | QueueUlDci (UlDciIdealControlMessage m) |
std::list < UlDciIdealControlMessage > | DequeueUlDci (void) |
void | StartFrame (void) |
Start a LTE frame. | |
void | StartSubFrame (void) |
Start a LTE sub frame. | |
void | EndSubFrame (void) |
End a LTE sub frame. | |
void | EndFrame (void) |
End a LTE frame. | |
void | PhyPduReceived (Ptr< Packet > p) |
PhySpectrum received a new PHY-PDU. | |
virtual void | GenerateCqiReport (const SpectrumValue &sinr) |
![]() | |
LtePhy () | |
LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
void | SetDevice (Ptr< LteNetDevice > d) |
Set the device where the phy layer is attached. | |
Ptr< LteNetDevice > | GetDevice () |
Get the device where the phy layer is attached. | |
Ptr< LteSpectrumPhy > | GetDownlinkSpectrumPhy () |
Ptr< LteSpectrumPhy > | GetUplinkSpectrumPhy () |
void | SetDownlinkChannel (Ptr< SpectrumChannel > c) |
void | SetUplinkChannel (Ptr< SpectrumChannel > c) |
void | SetDownlinkSubChannels (std::vector< int > mask) |
set a list of sub channel to use in the downlink. A sub channel is composed by a couple of resource bloks (180KHz x 1 ms) | |
void | SetUplinkSubChannels (std::vector< int > mask) |
set a list of sub channel to use in the uplink. A sub channel is composed by a couple of resource bloks (180KHz x 1 ms) | |
virtual void | DoSetUplinkSubChannels () |
do some operation after the set of a list of UL sub channels | |
std::vector< int > | GetDownlinkSubChannels (void) |
get a list of sub channel to use in the downlink | |
std::vector< int > | GetUplinkSubChannels (void) |
get a list of sub channel to use in the downlink | |
void | SetTti (double tti) |
double | GetTti (void) const |
void | DoSetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth) |
virtual void | DoSetEarfcn (uint16_t dlEarfcn, uint16_t ulEarfcn) |
void | DoSetCellId (uint16_t cellId) |
uint8_t | GetRbgSize (void) const |
void | SetMacPdu (Ptr< Packet > p) |
Ptr< PacketBurst > | GetPacketBurst (void) |
void | SetControlMessages (Ptr< IdealControlMessage > m) |
std::list< Ptr < IdealControlMessage > > | GetControlMessages (void) |
![]() | |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Dispose (void) |
void | AggregateObject (Ptr< Object > other) |
AggregateIterator | GetAggregateIterator (void) const |
void | Start (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
uint32_t | GetReferenceCount (void) const |
![]() | |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::LteEnbPhy. |
Friends | |
class | EnbMemberLteEnbPhySapProvider |
Additional Inherited Members | |
![]() | |
Ptr< LteNetDevice > | m_netDevice |
Ptr< LteSpectrumPhy > | m_downlinkSpectrumPhy |
Ptr< LteSpectrumPhy > | m_uplinkSpectrumPhy |
std::vector< int > | m_listOfDownlinkSubchannel |
std::vector< int > | m_listOfUplinkSubchannel |
double | m_txPower |
double | m_noiseFigure |
double | m_tti |
uint8_t | m_ulBandwidth |
uint8_t | m_dlBandwidth |
uint8_t | m_rbgSize |
uint16_t | m_dlEarfcn |
uint16_t | m_ulEarfcn |
std::vector< Ptr< PacketBurst > > | m_packetBurstQueue |
std::vector< std::list< Ptr < IdealControlMessage > > > | m_controlMessagesQueue |
uint8_t | m_macChTtiDelay |
uint16_t | m_cellId |
LteEnbPhy models the physical layer for the eNodeB
ns3::LteEnbPhy::LteEnbPhy | ( | ) |
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
ns3::LteEnbPhy::LteEnbPhy | ( | Ptr< LteSpectrumPhy > | dlPhy, |
Ptr< LteSpectrumPhy > | ulPhy | ||
) |
dlPhy | the downlink LteSpectrumPhy instance |
ulPhy | the uplink LteSpectrumPhy instance |
References ns3::Simulator::ScheduleNow(), and StartFrame().
void ns3::LteEnbPhy::CalcChannelQualityForUe | ( | std::vector< double > | sinr, |
Ptr< LteSpectrumPhy > | ue | ||
) |
Calculate the channel quality for a given UE.
sinr | a list of computed SINR |
ue | the UE |
References NS_LOG_FUNCTION.
UlCqi_s ns3::LteEnbPhy::CreateUlCqiReport | ( | const SpectrumValue & | sinr | ) |
Create the UL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.
sinr | SINR values vector |
References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), and NS_LOG_FUNCTION.
Referenced by GenerateCqiReport().
std::list< UlDciIdealControlMessage > ns3::LteEnbPhy::DequeueUlDci | ( | void | ) |
References NS_LOG_FUNCTION.
Referenced by StartSubFrame().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden 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::LtePhy.
References NS_LOG_FUNCTION.
Queue the MAC PDU to be sent.
p | the MAC PDU to sent |
Implements ns3::LtePhy.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
|
virtual |
This method is called only once by Object::Start. If the user calls Object::Start multiple times, DoStart is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject and AggregateObject from within this method.
Reimplemented from ns3::Object.
References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity().
|
virtual |
generate a CQI report based on the given SINR
sinr | the SINR vs frequency measured by the device |
Implements ns3::LtePhy.
References CreateUlCqiReport(), NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().
LteEnbPhySapProvider * ns3::LteEnbPhy::GetLteEnbPhySapProvider | ( | ) |
Get the PHY SAP provider.
uint8_t ns3::LteEnbPhy::GetMacChDelay | ( | void | ) | const |
Referenced by GetTypeId().
double ns3::LteEnbPhy::GetNoiseFigure | ( | ) | const |
double ns3::LteEnbPhy::GetTxPower | ( | ) | const |
|
static |
This method returns the TypeId associated to ns3::LteEnbPhy.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::LtePhy.
References GetMacChDelay(), GetNoiseFigure(), GetTxPower(), SetMacChDelay(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().
void ns3::LteEnbPhy::QueueUlDci | ( | UlDciIdealControlMessage | m | ) |
|
virtual |
Send the control message.
msg | the message to send Receive the control message |
msg | the received message |
Implements ns3::LtePhy.
References NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::ReceiveIdealControlMessage().
void ns3::LteEnbPhy::SetLteEnbPhySapUser | ( | LteEnbPhySapUser * | s | ) |
Set the PHY SAP User.
s | a pointer to the PHY SAP user |
void ns3::LteEnbPhy::SetMacChDelay | ( | uint8_t | delay | ) |
delay | the TTI delay between MAC and channel |
Referenced by GetTypeId().
void ns3::LteEnbPhy::SetNoiseFigure | ( | double | pow | ) |
void ns3::LteEnbPhy::SetTxPower | ( | double | pow | ) |