The LteSpectrumPhy models the physical layer of LTE. More...
#include "lte-spectrum-phy.h"
Public Types | |
enum | State { IDLE, TX_DL_CTRL, TX_DATA, TX_UL_SRS, RX_DL_CTRL, RX_DATA, RX_UL_SRS } |
PHY states. More... | |
Public Member Functions | |
LteSpectrumPhy () | |
virtual | ~LteSpectrumPhy () |
void | AddCtrlSinrChunkProcessor (Ptr< LteChunkProcessor > p) |
void | AddDataPowerChunkProcessor (Ptr< LteChunkProcessor > p) |
void | AddDataSinrChunkProcessor (Ptr< LteChunkProcessor > p) |
void | AddExpectedTb (uint16_t rnti, uint8_t ndi, uint16_t size, uint8_t mcs, std::vector< int > map, uint8_t layer, uint8_t harqId, uint8_t rv, bool downlink) |
void | AddInterferenceCtrlChunkProcessor (Ptr< LteChunkProcessor > p) |
LteChunkProcessor devoted to evaluate interference + noise power in control symbols of the subframe. More... | |
void | AddInterferenceDataChunkProcessor (Ptr< LteChunkProcessor > p) |
LteChunkProcessor devoted to evaluate interference + noise power in data symbols of the subframe. More... | |
void | AddRsPowerChunkProcessor (Ptr< LteChunkProcessor > p) |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
virtual void | DoDispose () |
Destructor implementation. More... | |
Ptr< SpectrumChannel > | GetChannel () |
Ptr< NetDevice > | GetDevice () const |
get the associated NetDevice instance More... | |
Ptr< MobilityModel > | GetMobility () |
get the associated MobilityModel instance More... | |
Ptr< AntennaModel > | GetRxAntenna () |
get the AntennaModel used by the NetDevice for reception More... | |
Ptr< const SpectrumModel > | GetRxSpectrumModel () const |
void | Reset () |
reset the internal state More... | |
void | SetAntenna (Ptr< AntennaModel > a) |
set the AntennaModel to be used More... | |
void | SetCellId (uint16_t cellId) |
void | SetChannel (Ptr< SpectrumChannel > c) |
Set the channel attached to this device. More... | |
void | SetDevice (Ptr< NetDevice > d) |
set the associated NetDevice instance More... | |
void | SetHarqPhyModule (Ptr< LteHarqPhy > harq) |
void | SetLtePhyDlHarqFeedbackCallback (LtePhyDlHarqFeedbackCallback c) |
set the callback for the DL HARQ feedback as part of the interconnections between the LteSpectrumPhy and the PHY More... | |
void | SetLtePhyRxCtrlEndErrorCallback (LtePhyRxCtrlEndErrorCallback c) |
set the callback for the erroneous end of a RX ctrl frame, as part of the interconnections between the LteSpectrumPhy and the PHY More... | |
void | SetLtePhyRxCtrlEndOkCallback (LtePhyRxCtrlEndOkCallback c) |
set the callback for the successful end of a RX ctrl frame, as part of the interconnections between the LteSpectrumPhy and the PHY More... | |
void | SetLtePhyRxDataEndErrorCallback (LtePhyRxDataEndErrorCallback c) |
set the callback for the end of a RX in error, as part of the interconnections between the PHY and the MAC More... | |
void | SetLtePhyRxDataEndOkCallback (LtePhyRxDataEndOkCallback c) |
set the callback for the successful end of a RX, as part of the interconnections between the PHY and the MAC More... | |
void | SetLtePhyRxPssCallback (LtePhyRxPssCallback c) |
set the callback for the reception of the PSS as part of the interconnections between the LteSpectrumPhy and the UE PHY More... | |
void | SetLtePhyTxEndCallback (LtePhyTxEndCallback c) |
set the callback for the end of a TX, as part of the interconnections between the PHY and the MAC More... | |
void | SetLtePhyUlHarqFeedbackCallback (LtePhyUlHarqFeedbackCallback c) |
set the callback for the UL HARQ feedback as part of the interconnections between the LteSpectrumPhy and the PHY More... | |
void | SetMobility (Ptr< MobilityModel > m) |
Set the mobility model associated with this device. More... | |
void | SetNoisePowerSpectralDensity (Ptr< const SpectrumValue > noisePsd) |
set the noise power spectral density More... | |
void | SetState (State newState) |
Set the state of the phy layer. More... | |
void | SetTransmissionMode (uint8_t txMode) |
void | SetTxPowerSpectralDensity (Ptr< SpectrumValue > txPsd) |
set the Power Spectral Density of outgoing signals in W/Hz. More... | |
void | StartRx (Ptr< SpectrumSignalParameters > params) |
Notify the SpectrumPhy instance of an incoming signal. More... | |
void | StartRxData (Ptr< LteSpectrumSignalParametersDataFrame > params) |
void | StartRxDlCtrl (Ptr< LteSpectrumSignalParametersDlCtrlFrame > lteDlCtrlRxParams) |
void | StartRxUlSrs (Ptr< LteSpectrumSignalParametersUlSrsFrame > lteUlSrsRxParams) |
bool | StartTxDataFrame (Ptr< PacketBurst > pb, std::list< Ptr< LteControlMessage > > ctrlMsgList, Time duration) |
Start a transmission of data frame in DL and UL. More... | |
bool | StartTxDlCtrlFrame (std::list< Ptr< LteControlMessage > > ctrlMsgList, bool pss) |
Start a transmission of control frame in DL. More... | |
bool | StartTxUlSrsFrame () |
Start a transmission of control frame in UL. More... | |
void | UpdateSinrPerceived (const SpectrumValue &sinr) |
![]() | |
SpectrumPhy () | |
virtual | ~SpectrumPhy () |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | ChangeState (State newState) |
void | EndRxData () |
void | EndRxDlCtrl () |
void | EndRxUlSrs () |
void | EndTxData () |
void | EndTxDlCtrl () |
void | EndTxUlSrs () |
void | SetTxModeGain (uint8_t txMode, double gain) |
Friends | |
class | LteUePhy |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
The LteSpectrumPhy models the physical layer of LTE.
It supports a single antenna model instance which is used for both transmission and reception.
ns3::LteSpectrumPhy is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 584 bytes (on a 64-bit architecture).
Definition at line 153 of file lte-spectrum-phy.h.
ns3::LteSpectrumPhy::LteSpectrumPhy | ( | ) |
Definition at line 114 of file lte-spectrum-phy.cc.
References m_interferenceCtrl, m_interferenceData, m_random, m_txModeGain, NS_LOG_FUNCTION, and ns3::ObjectBase::SetAttribute().
|
virtual |
Definition at line 134 of file lte-spectrum-phy.cc.
References m_expectedTbs, m_txModeGain, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::AddCtrlSinrChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
p | the new LteChunkProcessor to be added to the ctrl processing chain |
Definition at line 1224 of file lte-spectrum-phy.cc.
References m_interferenceCtrl.
void ns3::LteSpectrumPhy::AddDataPowerChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
p | the new LteChunkProcessor to be added to the Data Channel power processing chain |
Definition at line 1200 of file lte-spectrum-phy.cc.
References m_interferenceData.
void ns3::LteSpectrumPhy::AddDataSinrChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
p | the new LteChunkProcessor to be added to the data processing chain |
Definition at line 1206 of file lte-spectrum-phy.cc.
References m_interferenceData.
void ns3::LteSpectrumPhy::AddExpectedTb | ( | uint16_t | rnti, |
uint8_t | ndi, | ||
uint16_t | size, | ||
uint8_t | mcs, | ||
std::vector< int > | map, | ||
uint8_t | layer, | ||
uint8_t | harqId, | ||
uint8_t | rv, | ||
bool | downlink | ||
) |
rnti | the rnti of the source of the TB |
ndi | new data indicator flag |
size | the size of the TB |
mcs | the MCS of the TB |
map | the map of RB(s) used |
layer | the layer (in case of MIMO tx) |
harqId | the id of the HARQ process (valid only for DL) |
downlink | true when the TB is for DL |
Definition at line 912 of file lte-spectrum-phy.cc.
References m_expectedTbs, ns3::TbId_t::m_layer, ns3::TbId_t::m_rnti, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::AddInterferenceCtrlChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
LteChunkProcessor devoted to evaluate interference + noise power in control symbols of the subframe.
p | the new LteChunkProcessor to be added to the data processing chain |
Definition at line 1212 of file lte-spectrum-phy.cc.
References m_interferenceCtrl.
void ns3::LteSpectrumPhy::AddInterferenceDataChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
LteChunkProcessor devoted to evaluate interference + noise power in data symbols of the subframe.
p | the new LteChunkProcessor to be added to the data processing chain |
Definition at line 1218 of file lte-spectrum-phy.cc.
References m_interferenceData.
void ns3::LteSpectrumPhy::AddRsPowerChunkProcessor | ( | Ptr< LteChunkProcessor > | p | ) |
p | the new LteChunkProcessor to be added to the RS power processing chain |
Definition at line 1194 of file lte-spectrum-phy.cc.
References m_interferenceCtrl.
int64_t ns3::LteSpectrumPhy::AssignStreams | ( | int64_t | stream | ) |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Definition at line 1266 of file lte-spectrum-phy.cc.
References m_random, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Definition at line 406 of file lte-spectrum-phy.cc.
References m_state, and NS_LOG_LOGIC.
Referenced by EndRxData(), EndRxDlCtrl(), EndRxUlSrs(), EndTxData(), EndTxDlCtrl(), EndTxUlSrs(), SetState(), StartRxData(), StartRxDlCtrl(), StartRxUlSrs(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
virtual |
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 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.
Definition at line 141 of file lte-spectrum-phy.cc.
References ns3::Object::DoDispose(), m_channel, m_device, m_interferenceCtrl, m_interferenceData, m_ltePhyDlHarqFeedbackCallback, m_ltePhyRxCtrlEndErrorCallback, m_ltePhyRxCtrlEndOkCallback, m_ltePhyRxDataEndErrorCallback, m_ltePhyRxDataEndOkCallback, m_ltePhyRxPssCallback, m_ltePhyUlHarqFeedbackCallback, m_mobility, and NS_LOG_FUNCTION.
|
private |
Definition at line 932 of file lte-spectrum-phy.cc.
References ns3::DlInfoListElement_s::ACK, ChangeState(), ns3::LteRadioBearerTag::GetLayer(), ns3::Time::GetMilliSeconds(), ns3::LteRadioBearerTag::GetRnti(), ns3::LteMiErrorModel::GetTbDecodificationStats(), ns3::UniformRandomVariable::GetValue(), IDLE, ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), list, ns3::PhyReceptionStatParameters::m_cellId, m_cellId, ns3::PhyReceptionStatParameters::m_correctness, m_dataErrorModelEnabled, m_dlPhyReception, m_expectedTbs, m_harqPhyModule, ns3::DlInfoListElement_s::m_harqProcessId, ns3::DlInfoListElement_s::m_harqStatus, ns3::PhyReceptionStatParameters::m_imsi, m_interferenceData, ns3::TbId_t::m_layer, ns3::PhyReceptionStatParameters::m_layer, m_layersNum, m_ltePhyDlHarqFeedbackCallback, m_ltePhyRxCtrlEndOkCallback, m_ltePhyRxDataEndOkCallback, m_ltePhyUlHarqFeedbackCallback, ns3::PhyReceptionStatParameters::m_mcs, ns3::PhyReceptionStatParameters::m_ndi, m_phyRxEndErrorTrace, m_phyRxEndOkTrace, m_random, ns3::UlInfoListElement_s::m_receptionStatus, ns3::TbId_t::m_rnti, ns3::PhyReceptionStatParameters::m_rnti, ns3::UlInfoListElement_s::m_rnti, ns3::DlInfoListElement_s::m_rnti, ns3::PhyReceptionStatParameters::m_rv, m_rxControlMessageList, m_rxPacketBurstList, m_sinrPerceived, ns3::PhyReceptionStatParameters::m_size, m_state, ns3::PhyReceptionStatParameters::m_timestamp, ns3::UlInfoListElement_s::m_tpc, m_transmissionMode, ns3::PhyReceptionStatParameters::m_txMode, m_txModeGain, m_ulPhyReception, ns3::TbStats_t::mi, ns3::DlInfoListElement_s::NACK, ns3::UlInfoListElement_s::NotOk, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::UlInfoListElement_s::Ok, RX_DATA, and ns3::TbStats_t::tbler.
Referenced by StartRxData().
|
private |
Definition at line 1130 of file lte-spectrum-phy.cc.
References ChangeState(), ns3::LteMiErrorModel::GetPcfichPdcchError(), ns3::UniformRandomVariable::GetValue(), IDLE, ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_ctrlErrorModelEnabled, m_interferenceCtrl, m_ltePhyRxCtrlEndErrorCallback, m_ltePhyRxCtrlEndOkCallback, m_random, m_rxControlMessageList, m_sinrPerceived, m_state, m_transmissionMode, m_txModeGain, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and RX_DL_CTRL.
Referenced by StartRxDlCtrl().
|
private |
Definition at line 1178 of file lte-spectrum-phy.cc.
References ChangeState(), IDLE, m_interferenceCtrl, m_state, NS_ASSERT, and RX_UL_SRS.
Referenced by StartRxUlSrs().
|
private |
Definition at line 597 of file lte-spectrum-phy.cc.
References ChangeState(), IDLE, m_phyTxEndTrace, m_state, m_txPacketBurst, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and TX_DATA.
Referenced by StartTxDataFrame().
|
private |
Definition at line 609 of file lte-spectrum-phy.cc.
References ChangeState(), IDLE, m_state, m_txPacketBurst, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and TX_DL_CTRL.
Referenced by StartTxDlCtrlFrame().
|
private |
Definition at line 620 of file lte-spectrum-phy.cc.
References ChangeState(), IDLE, m_state, m_txPacketBurst, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and TX_UL_SRS.
Referenced by StartTxUlSrsFrame().
Ptr< SpectrumChannel > ns3::LteSpectrumPhy::GetChannel | ( | void | ) |
Definition at line 280 of file lte-spectrum-phy.cc.
References m_channel.
Referenced by LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), and LteDistributedFfrAreaTestCase::DoRun().
get the associated NetDevice instance
Implements ns3::SpectrumPhy.
Definition at line 241 of file lte-spectrum-phy.cc.
References m_device, and NS_LOG_FUNCTION.
|
virtual |
get the associated MobilityModel instance
Implements ns3::SpectrumPhy.
Definition at line 249 of file lte-spectrum-phy.cc.
References m_mobility, and NS_LOG_FUNCTION.
|
virtual |
get the AntennaModel used by the NetDevice for reception
Implements ns3::SpectrumPhy.
Definition at line 386 of file lte-spectrum-phy.cc.
References m_antenna.
|
virtual |
Implements ns3::SpectrumPhy.
Definition at line 286 of file lte-spectrum-phy.cc.
References m_rxSpectrumModel.
|
static |
Definition at line 191 of file lte-spectrum-phy.cc.
References m_ctrlErrorModelEnabled, m_dataErrorModelEnabled, m_dlPhyReception, m_phyRxEndErrorTrace, m_phyRxEndOkTrace, m_phyRxStartTrace, m_phyTxEndTrace, m_phyTxStartTrace, m_ulPhyReception, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
void ns3::LteSpectrumPhy::Reset | ( | void | ) |
reset the internal state
Definition at line 313 of file lte-spectrum-phy.cc.
References ns3::EventId::Cancel(), IDLE, m_cellId, m_endRxDataEvent, m_endRxDlCtrlEvent, m_endRxUlSrsEvent, m_endTxEvent, m_expectedTbs, m_layersNum, m_rxControlMessageList, m_rxPacketBurstList, m_rxSpectrumModel, m_state, m_transmissionMode, m_txControlMessageList, m_txPacketBurst, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetAntenna | ( | Ptr< AntennaModel > | a | ) |
set the AntennaModel to be used
a | the Antenna Model |
Definition at line 392 of file lte-spectrum-phy.cc.
References m_antenna, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetCellId | ( | uint16_t | cellId | ) |
cellId | the Cell Identifier |
Definition at line 1187 of file lte-spectrum-phy.cc.
References m_cellId.
|
virtual |
Set the channel attached to this device.
c | the channel |
Implements ns3::SpectrumPhy.
Definition at line 273 of file lte-spectrum-phy.cc.
References m_channel, and NS_LOG_FUNCTION.
set the associated NetDevice instance
d | the NetDevice instance |
Implements ns3::SpectrumPhy.
Definition at line 257 of file lte-spectrum-phy.cc.
References m_device, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetHarqPhyModule | ( | Ptr< LteHarqPhy > | harq | ) |
Definition at line 414 of file lte-spectrum-phy.cc.
References m_harqPhyModule.
void ns3::LteSpectrumPhy::SetLtePhyDlHarqFeedbackCallback | ( | LtePhyDlHarqFeedbackCallback | c | ) |
set the callback for the DL HARQ feedback as part of the interconnections between the LteSpectrumPhy and the PHY
c | the callback |
Definition at line 371 of file lte-spectrum-phy.cc.
References m_ltePhyDlHarqFeedbackCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyRxCtrlEndErrorCallback | ( | LtePhyRxCtrlEndErrorCallback | c | ) |
set the callback for the erroneous end of a RX ctrl frame, as part of the interconnections between the LteSpectrumPhy and the PHY
c | the callback |
Definition at line 356 of file lte-spectrum-phy.cc.
References m_ltePhyRxCtrlEndErrorCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyRxCtrlEndOkCallback | ( | LtePhyRxCtrlEndOkCallback | c | ) |
set the callback for the successful end of a RX ctrl frame, as part of the interconnections between the LteSpectrumPhy and the PHY
c | the callback |
Definition at line 349 of file lte-spectrum-phy.cc.
References m_ltePhyRxCtrlEndOkCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyRxDataEndErrorCallback | ( | LtePhyRxDataEndErrorCallback | c | ) |
set the callback for the end of a RX in error, as part of the interconnections between the PHY and the MAC
c | the callback |
Definition at line 334 of file lte-spectrum-phy.cc.
References m_ltePhyRxDataEndErrorCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyRxDataEndOkCallback | ( | LtePhyRxDataEndOkCallback | c | ) |
set the callback for the successful end of a RX, as part of the interconnections between the PHY and the MAC
c | the callback |
Definition at line 342 of file lte-spectrum-phy.cc.
References m_ltePhyRxDataEndOkCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyRxPssCallback | ( | LtePhyRxPssCallback | c | ) |
set the callback for the reception of the PSS as part of the interconnections between the LteSpectrumPhy and the UE PHY
c | the callback |
Definition at line 364 of file lte-spectrum-phy.cc.
References m_ltePhyRxPssCallback, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetLtePhyTxEndCallback | ( | LtePhyTxEndCallback | c | ) |
set the callback for the end of a TX, as part of the interconnections between the PHY and the MAC
c | the callback |
void ns3::LteSpectrumPhy::SetLtePhyUlHarqFeedbackCallback | ( | LtePhyUlHarqFeedbackCallback | c | ) |
set the callback for the UL HARQ feedback as part of the interconnections between the LteSpectrumPhy and the PHY
c | the callback |
Definition at line 378 of file lte-spectrum-phy.cc.
References m_ltePhyUlHarqFeedbackCallback, and NS_LOG_FUNCTION.
|
virtual |
Set the mobility model associated with this device.
m | the mobility model |
Implements ns3::SpectrumPhy.
Definition at line 265 of file lte-spectrum-phy.cc.
References m_mobility, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity | ( | Ptr< const SpectrumValue > | noisePsd | ) |
set the noise power spectral density
noisePsd | the Noise Power Spectral Density in power units (Watt, Pascal...) per Hz. |
Definition at line 302 of file lte-spectrum-phy.cc.
References m_interferenceCtrl, m_interferenceData, m_rxSpectrumModel, NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetState | ( | State | newState | ) |
Set the state of the phy layer.
newState | the state |
Definition at line 399 of file lte-spectrum-phy.cc.
References ChangeState().
void ns3::LteSpectrumPhy::SetTransmissionMode | ( | uint8_t | txMode | ) |
txMode | UE transmission mode (SISO, MIMO tx diversity, ...) |
Definition at line 1230 of file lte-spectrum-phy.cc.
References m_layersNum, m_transmissionMode, m_txModeGain, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::TransmissionModesLayers::TxMode2LayerNum().
|
private |
Definition at line 1240 of file lte-spectrum-phy.cc.
References m_txModeGain, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetTxPowerSpectralDensity | ( | Ptr< SpectrumValue > | txPsd | ) |
set the Power Spectral Density of outgoing signals in W/Hz.
txPsd |
Definition at line 293 of file lte-spectrum-phy.cc.
References m_txPsd, NS_ASSERT, and NS_LOG_FUNCTION.
|
virtual |
Notify the SpectrumPhy instance of an incoming signal.
params | the parameters of the signals being received |
Implements ns3::SpectrumPhy.
Definition at line 634 of file lte-spectrum-phy.cc.
References m_interferenceCtrl, m_interferenceData, m_state, NS_LOG_FUNCTION, NS_LOG_LOGIC, StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
void ns3::LteSpectrumPhy::StartRxData | ( | Ptr< LteSpectrumSignalParametersDataFrame > | params | ) |
Definition at line 671 of file lte-spectrum-phy.cc.
References ChangeState(), EndRxData(), IDLE, m_cellId, m_endRxDataEvent, m_firstRxDuration, m_firstRxStart, m_interferenceData, m_phyRxStartTrace, m_rxControlMessageList, m_rxPacketBurstList, m_state, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, and TX_UL_SRS.
Referenced by StartRx().
void ns3::LteSpectrumPhy::StartRxDlCtrl | ( | Ptr< LteSpectrumSignalParametersDlCtrlFrame > | lteDlCtrlRxParams | ) |
Definition at line 749 of file lte-spectrum-phy.cc.
References ChangeState(), EndRxDlCtrl(), IDLE, ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_cellId, m_endRxDlCtrlEvent, m_firstRxDuration, m_firstRxStart, m_interferenceCtrl, m_ltePhyRxPssCallback, m_rxControlMessageList, m_state, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, RX_UL_SRS, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, and TX_UL_SRS.
Referenced by StartRx().
void ns3::LteSpectrumPhy::StartRxUlSrs | ( | Ptr< LteSpectrumSignalParametersUlSrsFrame > | lteUlSrsRxParams | ) |
Definition at line 833 of file lte-spectrum-phy.cc.
References ChangeState(), EndRxUlSrs(), IDLE, m_cellId, m_endRxUlSrsEvent, m_firstRxDuration, m_firstRxStart, m_interferenceCtrl, m_rxControlMessageList, m_state, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, RX_UL_SRS, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, and TX_UL_SRS.
Referenced by StartRx().
bool ns3::LteSpectrumPhy::StartTxDataFrame | ( | Ptr< PacketBurst > | pb, |
std::list< Ptr< LteControlMessage > > | ctrlMsgList, | ||
Time | duration | ||
) |
Start a transmission of data frame in DL and UL.
pb | the burst of packets to be transmitted in PDSCH/PUSCH |
ctrlMsgList | the list of LteControlMessage to send |
duration | the duration of the data frame |
Definition at line 423 of file lte-spectrum-phy.cc.
References ChangeState(), EndTxData(), IDLE, m_antenna, m_cellId, m_channel, m_endTxEvent, m_phyTxStartTrace, m_state, m_txPacketBurst, m_txPsd, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, RX_UL_SRS, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, and TX_UL_SRS.
bool ns3::LteSpectrumPhy::StartTxDlCtrlFrame | ( | std::list< Ptr< LteControlMessage > > | ctrlMsgList, |
bool | pss | ||
) |
Start a transmission of control frame in DL.
ctrlMsgList | the burst of control messages to be transmitted |
pss | the flag for transmitting the primary synchronization signal |
Definition at line 482 of file lte-spectrum-phy.cc.
References ChangeState(), ns3::DL_CTRL_DURATION, EndTxDlCtrl(), IDLE, m_antenna, m_cellId, m_channel, m_endTxEvent, m_state, m_txPsd, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, RX_UL_SRS, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, and TX_UL_SRS.
bool ns3::LteSpectrumPhy::StartTxUlSrsFrame | ( | ) |
Start a transmission of control frame in UL.
Definition at line 540 of file lte-spectrum-phy.cc.
References ChangeState(), EndTxUlSrs(), IDLE, m_antenna, m_cellId, m_channel, m_endTxEvent, m_state, m_txPsd, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, RX_DATA, RX_DL_CTRL, RX_UL_SRS, ns3::Simulator::Schedule(), TX_DATA, TX_DL_CTRL, TX_UL_SRS, and ns3::UL_SRS_DURATION.
void ns3::LteSpectrumPhy::UpdateSinrPerceived | ( | const SpectrumValue & | sinr | ) |
sinr | vector of sinr perceived per each RB |
Definition at line 904 of file lte-spectrum-phy.cc.
References m_sinrPerceived, and NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::InstallSingleEnbDevice(), and ns3::LteHelper::InstallSingleUeDevice().
|
friend |
Definition at line 410 of file lte-spectrum-phy.h.
|
private |
Definition at line 435 of file lte-spectrum-phy.h.
Referenced by GetRxAntenna(), SetAntenna(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Definition at line 469 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), SetCellId(), StartRxData(), StartRxDlCtrl(), StartRxUlSrs(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Definition at line 438 of file lte-spectrum-phy.h.
Referenced by DoDispose(), GetChannel(), SetChannel(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Definition at line 477 of file lte-spectrum-phy.h.
Referenced by EndRxDlCtrl(), and GetTypeId().
|
private |
Definition at line 476 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
Definition at line 436 of file lte-spectrum-phy.h.
Referenced by DoDispose(), GetDevice(), and SetDevice().
|
private |
Trace information regarding PHY stats from DL Rx perspective PhyReceptionStatParameters (see lte-common.h)
Definition at line 492 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
Definition at line 502 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxData().
|
private |
Definition at line 503 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxDlCtrl().
|
private |
Definition at line 504 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxUlSrs().
|
private |
Definition at line 501 of file lte-spectrum-phy.h.
Referenced by Reset(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Definition at line 471 of file lte-spectrum-phy.h.
Referenced by AddExpectedTb(), EndRxData(), Reset(), and ~LteSpectrumPhy().
|
private |
Definition at line 451 of file lte-spectrum-phy.h.
Referenced by StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
Definition at line 450 of file lte-spectrum-phy.h.
Referenced by StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
Definition at line 483 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and SetHarqPhyModule().
|
private |
Definition at line 467 of file lte-spectrum-phy.h.
Referenced by AddCtrlSinrChunkProcessor(), AddInterferenceCtrlChunkProcessor(), AddRsPowerChunkProcessor(), DoDispose(), EndRxDlCtrl(), EndRxUlSrs(), LteSpectrumPhy(), SetNoisePowerSpectralDensity(), StartRx(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
Definition at line 466 of file lte-spectrum-phy.h.
Referenced by AddDataPowerChunkProcessor(), AddDataSinrChunkProcessor(), AddInterferenceDataChunkProcessor(), DoDispose(), EndRxData(), LteSpectrumPhy(), SetNoisePowerSpectralDensity(), StartRx(), and StartRxData().
|
private |
Definition at line 480 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), and SetTransmissionMode().
|
private |
Definition at line 484 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyDlHarqFeedbackCallback().
|
private |
Definition at line 463 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxDlCtrl(), and SetLtePhyRxCtrlEndErrorCallback().
|
private |
Definition at line 462 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), EndRxDlCtrl(), and SetLtePhyRxCtrlEndOkCallback().
|
private |
Definition at line 459 of file lte-spectrum-phy.h.
Referenced by DoDispose(), and SetLtePhyRxDataEndErrorCallback().
|
private |
Definition at line 460 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyRxDataEndOkCallback().
|
private |
Definition at line 464 of file lte-spectrum-phy.h.
Referenced by DoDispose(), SetLtePhyRxPssCallback(), and StartRxDlCtrl().
|
private |
Definition at line 485 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyUlHarqFeedbackCallback().
|
private |
Definition at line 434 of file lte-spectrum-phy.h.
Referenced by DoDispose(), GetMobility(), and SetMobility().
|
private |
Definition at line 457 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
Definition at line 456 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
Definition at line 455 of file lte-spectrum-phy.h.
Referenced by GetTypeId(), and StartRxData().
|
private |
Definition at line 454 of file lte-spectrum-phy.h.
Referenced by EndTxData(), and GetTypeId().
|
private |
Definition at line 453 of file lte-spectrum-phy.h.
Referenced by GetTypeId(), and StartTxDataFrame().
|
private |
Provides uniform random variables.
Definition at line 475 of file lte-spectrum-phy.h.
Referenced by AssignStreams(), EndRxData(), EndRxDlCtrl(), and LteSpectrumPhy().
|
private |
Definition at line 446 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), Reset(), StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
Definition at line 443 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), and StartRxData().
|
private |
Definition at line 440 of file lte-spectrum-phy.h.
Referenced by GetRxSpectrumModel(), Reset(), and SetNoisePowerSpectralDensity().
|
private |
Definition at line 472 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), and UpdateSinrPerceived().
|
private |
Definition at line 449 of file lte-spectrum-phy.h.
Referenced by ChangeState(), EndRxData(), EndRxDlCtrl(), EndRxUlSrs(), EndTxData(), EndTxDlCtrl(), EndTxUlSrs(), Reset(), StartRx(), StartRxData(), StartRxDlCtrl(), StartRxUlSrs(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Definition at line 479 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), Reset(), and SetTransmissionMode().
|
private |
Definition at line 445 of file lte-spectrum-phy.h.
Referenced by Reset().
|
private |
Definition at line 481 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), LteSpectrumPhy(), SetTransmissionMode(), SetTxModeGain(), and ~LteSpectrumPhy().
|
private |
Definition at line 442 of file lte-spectrum-phy.h.
Referenced by EndTxData(), EndTxDlCtrl(), EndTxUlSrs(), Reset(), and StartTxDataFrame().
|
private |
Definition at line 441 of file lte-spectrum-phy.h.
Referenced by SetTxPowerSpectralDensity(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
Trace information regarding PHY stats from UL Rx perspective PhyReceptionStatParameters (see lte-common.h)
Definition at line 499 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().