ns-3
|
#include <lte-phy.h>
Public Member Functions | |
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 () |
virtual void | DoSendMacPdu (Ptr< Packet > p)=0 |
Queue the MAC PDU to be sent (according to m_macChTtiDelay) | |
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) | |
virtual void | DoSetDownlinkSubChannels () |
do some operation after the set of a list of DL sub channels | |
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 | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity ()=0 |
Compute the TX Power Spectral Density. | |
void | DoDispose () |
virtual void | ReceiveIdealControlMessage (Ptr< IdealControlMessage > msg)=0 |
Receive SendIdealControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel. | |
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 void | GenerateCqiReport (const SpectrumValue &sinr)=0 |
![]() | |
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::LtePhy. |
Protected Attributes | |
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 |
Additional Inherited Members | |
![]() | |
virtual void | NotifyNewAggregate (void) |
virtual void | DoStart (void) |
Object (const Object &o) |
The LtePhy models the physical layer of LTE. It is composed by two LteSpectrumPhy, one for the downlink and one for the uplink.
ns3::LtePhy::LtePhy | ( | ) |
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
ns3::LtePhy::LtePhy | ( | Ptr< LteSpectrumPhy > | dlPhy, |
Ptr< LteSpectrumPhy > | ulPhy | ||
) |
dlPhy | the downlink LteSpectrumPhy instance |
ulPhy | the uplink LteSpectrumPhy instance |
References NS_LOG_FUNCTION.
|
pure virtual |
Compute the TX Power Spectral Density.
Implemented in ns3::LteEnbPhy, and ns3::LteUePhy.
|
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::Object.
Reimplemented in ns3::LteUePhy, and ns3::LteEnbPhy.
References ns3::Object::Dispose(), and NS_LOG_FUNCTION.
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
p | the MAC PDU to sent |
Implemented in ns3::LteEnbPhy, and ns3::LteUePhy.
void ns3::LtePhy::DoSetBandwidth | ( | uint8_t | ulBandwidth, |
uint8_t | dlBandwidth | ||
) |
ulBandwidth | the UL bandwidth in RB |
dlBandwidth | the DL bandwidth in RB |
Referenced by ns3::LteHelper::Attach().
void ns3::LtePhy::DoSetCellId | ( | uint16_t | cellId | ) |
cellId | the Cell Identifier |
References ns3::LteSpectrumPhy::SetCellId().
Referenced by ns3::LteUeNetDevice::SetTargetEnb().
|
virtual |
dlEarfcn | the carrier frequency (EARFCN) in downlink |
ulEarfcn | the carrier frequency (EARFCN) in downlink |
Referenced by ns3::LteHelper::Attach().
|
pure virtual |
generate a CQI report based on the given SINR
sinr | the SINR vs frequency measured by the device |
Implemented in ns3::LteEnbPhy, and ns3::LteUePhy.
std::list< Ptr< IdealControlMessage > > ns3::LtePhy::GetControlMessages | ( | void | ) |
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
Ptr< LteNetDevice > ns3::LtePhy::GetDevice | ( | void | ) |
Get the device where the phy layer is attached.
References NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::GenerateCqiReport(), and ns3::LteUePhy::SubframeIndication().
Ptr< LteSpectrumPhy > ns3::LtePhy::GetDownlinkSpectrumPhy | ( | ) |
Referenced by ns3::LteHelper::Attach().
std::vector< int > ns3::LtePhy::GetDownlinkSubChannels | ( | void | ) |
get a list of sub channel to use in the downlink
References NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::CreateTxPowerSpectralDensity().
Ptr< PacketBurst > ns3::LtePhy::GetPacketBurst | ( | void | ) |
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
uint8_t ns3::LtePhy::GetRbgSize | ( | void | ) | const |
Referenced by ns3::LteUePhy::CreateDlCqiFeedbackMessage(), ns3::LteUePhy::ReceiveIdealControlMessage(), and ns3::LteEnbPhy::StartSubFrame().
double ns3::LtePhy::GetTti | ( | void | ) | const |
References NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::StartSubFrame().
|
static |
This method returns the TypeId associated to ns3::LtePhy.
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::Object.
Reimplemented in ns3::LteUePhy, and ns3::LteEnbPhy.
References ns3::TypeId::SetParent().
Ptr< LteSpectrumPhy > ns3::LtePhy::GetUplinkSpectrumPhy | ( | ) |
Referenced by ns3::LteHelper::Attach().
std::vector< int > ns3::LtePhy::GetUplinkSubChannels | ( | void | ) |
get a list of sub channel to use in the downlink
References NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::DoSetUplinkSubChannels().
|
pure virtual |
Receive SendIdealControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
msg | the Ideal Control Message to receive |
Implemented in ns3::LteUePhy, and ns3::LteEnbPhy.
Referenced by ns3::LteUePhy::SubframeIndication().
void ns3::LtePhy::SetControlMessages | ( | Ptr< IdealControlMessage > | m | ) |
m | the control message to be sent |
void ns3::LtePhy::SetDevice | ( | Ptr< LteNetDevice > | d | ) |
void ns3::LtePhy::SetDownlinkChannel | ( | Ptr< SpectrumChannel > | c | ) |
Set the downlink channel
c | the downlink channel |
References NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetChannel().
void ns3::LtePhy::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)
mask | a vector of intefer values. Each elements of this vector carries information about the corresponding DL sub channel. If the i-th value of mask is equal to 1 (0) it means that the corresponding sub channel is used (not used) for the downlink. |
References DoSetDownlinkSubChannels(), and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::StartSubFrame().
p | queue MAC PDU to be sent |
Referenced by ns3::LteEnbPhy::DoSendMacPdu(), and ns3::LteUePhy::DoSendMacPdu().
void ns3::LtePhy::SetTti | ( | double | tti | ) |
tti | transmission time interval |
References NS_LOG_FUNCTION.
void ns3::LtePhy::SetUplinkChannel | ( | Ptr< SpectrumChannel > | c | ) |
Set the uplink channel
c | the uplink channel |
References NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetChannel().
void ns3::LtePhy::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)
mask | a vector of intefer values. Each elements of this vector carries information about the corresponding UL sub channel. If the i-th value of mask is equal to 1 (0) it means that the corresponding sub channel is used (not used) for the uplink. |
References DoSetUplinkSubChannels(), and NS_LOG_FUNCTION.