#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 | SetComponentCarrierId (uint8_t componentCarrierId) |
void | SetDevice (Ptr< NetDevice > d) |
Set the associated NetDevice instance. More... | |
void | SetHarqPhyModule (Ptr< LteHarqPhy > harq) |
Set HARQ phy function. More... | |
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 | 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) |
Start receive data function. More... | |
void | StartRxDlCtrl (Ptr< LteSpectrumSignalParametersDlCtrlFrame > lteDlCtrlRxParams) |
Start receive DL control function. More... | |
void | StartRxUlSrs (Ptr< LteSpectrumSignalParametersUlSrsFrame > lteUlSrsRxParams) |
Start receive UL SRS function. More... | |
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) |
Public Member Functions inherited from ns3::SpectrumPhy | |
SpectrumPhy () | |
virtual | ~SpectrumPhy () |
Public Member Functions inherited from ns3::Object | |
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 |
Get the most derived TypeId for this Object. 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... | |
bool | IsInitialized (void) const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default 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 operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
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) |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::SpectrumPhy | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | ChangeState (State newState) |
Change state function More... | |
void | EndRxData () |
End receive data function. More... | |
void | EndRxDlCtrl () |
End receive DL control function. More... | |
void | EndRxUlSrs () |
End receive UL SRS function. More... | |
void | EndTxData () |
End transmit data function. More... | |
void | EndTxDlCtrl () |
End transmit DL control function. More... | |
void | EndTxUlSrs () |
End transmit UL SRS function. More... | |
void | SetTxModeGain (uint8_t txMode, double gain) |
Set transmit mode gain function More... | |
Friends | |
class | LteUePhy |
allow LteUePhy class friend access More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
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... | |
Protected Member Functions inherited from ns3::ObjectBase | |
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... | |
Related Functions inherited from ns3::ObjectBase | |
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.
ns3::LteSpectrumPhy is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 640 bytes (on a 64-bit architecture).
It supports a single antenna model instance which is used for both transmission and reception.
Definition at line 153 of file lte-spectrum-phy.h.
PHY states.
Enumerator | |
---|---|
IDLE | |
TX_DL_CTRL | |
TX_DATA | |
TX_UL_SRS | |
RX_DL_CTRL | |
RX_DATA | |
RX_UL_SRS |
Definition at line 163 of file lte-spectrum-phy.h.
ns3::LteSpectrumPhy::LteSpectrumPhy | ( | ) |
Definition at line 129 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 150 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 1253 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 1229 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 1235 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) |
rv | the rv |
downlink | true when the TB is for DL |
Definition at line 935 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 1241 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 1247 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 1223 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 1295 of file lte-spectrum-phy.cc.
References m_random, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Change state function
newState | the new state to set |
Definition at line 429 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 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 157 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 |
End receive data function.
Definition at line 955 of file lte-spectrum-phy.cc.
References ns3::DlInfoListElement_s::ACK, ChangeState(), ns3::EffectiveCodingRate, ns3::LteRadioBearerTag::GetLayer(), ns3::Time::GetMilliSeconds(), ns3::LteRadioBearerTag::GetRnti(), ns3::LteMiErrorModel::GetTbDecodificationStats(), ns3::UniformRandomVariable::GetValue(), IDLE, ns3::if(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), list, ns3::PhyReceptionStatParameters::m_ccId, ns3::PhyReceptionStatParameters::m_cellId, m_cellId, m_componentCarrierId, 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 |
End receive DL control function.
Definition at line 1154 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 |
End receive UL SRS function.
Definition at line 1202 of file lte-spectrum-phy.cc.
References ChangeState(), IDLE, m_interferenceCtrl, m_state, NS_ASSERT, and RX_UL_SRS.
Referenced by StartRxUlSrs().
|
private |
End transmit data function.
Definition at line 620 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 |
End transmit DL control function.
Definition at line 632 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 |
End transmit UL SRS function.
Definition at line 643 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 303 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 264 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 272 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 409 of file lte-spectrum-phy.cc.
References m_antenna.
|
virtual |
Implements ns3::SpectrumPhy.
Definition at line 309 of file lte-spectrum-phy.cc.
References m_rxSpectrumModel.
|
static |
Get the type ID.
Definition at line 214 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 336 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 415 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 1211 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 296 of file lte-spectrum-phy.cc.
References m_channel, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetComponentCarrierId | ( | uint8_t | componentCarrierId | ) |
componentCarrierId | the component carrier id |
Definition at line 1217 of file lte-spectrum-phy.cc.
References m_componentCarrierId.
Set the associated NetDevice instance.
d | the NetDevice instance |
Implements ns3::SpectrumPhy.
Definition at line 280 of file lte-spectrum-phy.cc.
References m_device, and NS_LOG_FUNCTION.
void ns3::LteSpectrumPhy::SetHarqPhyModule | ( | Ptr< LteHarqPhy > | harq | ) |
Set HARQ phy function.
harq | the HARQ phy module |
Definition at line 437 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 394 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 379 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 372 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 357 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 365 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 387 of file lte-spectrum-phy.cc.
References m_ltePhyRxPssCallback, and NS_LOG_FUNCTION.
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 401 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 288 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 325 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 422 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 1259 of file lte-spectrum-phy.cc.
References m_layersNum, m_transmissionMode, m_txModeGain, NS_ASSERT_MSG(), NS_LOG_FUNCTION, and ns3::TransmissionModesLayers::TxMode2LayerNum().
|
private |
Set transmit mode gain function
txMode | the transmit mode |
gain | the gain to set |
Definition at line 1269 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 316 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 657 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 | ) |
Start receive data function.
params | Ptr<LteSpectrumSignalParametersDataFrame> |
Definition at line 694 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 | ) |
Start receive DL control function.
lteDlCtrlRxParams | Ptr<LteSpectrumSignalParametersDlCtrlFrame> |
Definition at line 772 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 | ) |
Start receive UL SRS function.
lteUlSrsRxParams | Ptr<LteSpectrumSignalParametersUlSrsFrame> |
Definition at line 856 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 446 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 505 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 563 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 927 of file lte-spectrum-phy.cc.
References m_sinrPerceived, and NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::InstallSingleEnbDevice(), and ns3::LteHelper::InstallSingleUeDevice().
|
friend |
allow LteUePhy class friend access
Definition at line 427 of file lte-spectrum-phy.h.
|
private |
the antenna model
Definition at line 469 of file lte-spectrum-phy.h.
Referenced by GetRxAntenna(), SetAntenna(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
the cell ID
Definition at line 503 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), SetCellId(), StartRxData(), StartRxDlCtrl(), StartRxUlSrs(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
the channel
Definition at line 472 of file lte-spectrum-phy.h.
Referenced by DoDispose(), GetChannel(), SetChannel(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
the component carrier ID
Definition at line 505 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and SetComponentCarrierId().
|
private |
when true (default) the phy error model is enabled for DL ctrl frame
Definition at line 512 of file lte-spectrum-phy.h.
Referenced by EndRxDlCtrl(), and GetTypeId().
|
private |
when true (default) the phy error model is enabled
Definition at line 511 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
the device
Definition at line 470 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 527 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
end receive data event
Definition at line 537 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxData().
|
private |
end receive DL control event
Definition at line 538 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxDlCtrl().
|
private |
end receive UL SRS event
Definition at line 539 of file lte-spectrum-phy.h.
Referenced by Reset(), and StartRxUlSrs().
|
private |
end transmit event
Definition at line 536 of file lte-spectrum-phy.h.
Referenced by Reset(), StartTxDataFrame(), StartTxDlCtrlFrame(), and StartTxUlSrsFrame().
|
private |
the expected TBS
Definition at line 506 of file lte-spectrum-phy.h.
Referenced by AddExpectedTb(), EndRxData(), Reset(), and ~LteSpectrumPhy().
|
private |
the first receive duration
Definition at line 485 of file lte-spectrum-phy.h.
Referenced by StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
the first receive start
Definition at line 484 of file lte-spectrum-phy.h.
Referenced by StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
the HARQ phy module
Definition at line 518 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and SetHarqPhyModule().
|
private |
the control interference
Definition at line 501 of file lte-spectrum-phy.h.
Referenced by AddCtrlSinrChunkProcessor(), AddInterferenceCtrlChunkProcessor(), AddRsPowerChunkProcessor(), DoDispose(), EndRxDlCtrl(), EndRxUlSrs(), LteSpectrumPhy(), SetNoisePowerSpectralDensity(), StartRx(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
the data interference
Definition at line 500 of file lte-spectrum-phy.h.
Referenced by AddDataPowerChunkProcessor(), AddDataSinrChunkProcessor(), AddInterferenceDataChunkProcessor(), DoDispose(), EndRxData(), LteSpectrumPhy(), SetNoisePowerSpectralDensity(), StartRx(), and StartRxData().
|
private |
layers num
Definition at line 515 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), and SetTransmissionMode().
|
private |
the LTE phy DL HARQ feedback callback
Definition at line 519 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyDlHarqFeedbackCallback().
|
private |
the LTE phy receive control end error callback
Definition at line 497 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxDlCtrl(), and SetLtePhyRxCtrlEndErrorCallback().
|
private |
the LTE phy receive control end ok callback
Definition at line 496 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), EndRxDlCtrl(), and SetLtePhyRxCtrlEndOkCallback().
|
private |
the LTE phy receive data end error callback
Definition at line 493 of file lte-spectrum-phy.h.
Referenced by DoDispose(), and SetLtePhyRxDataEndErrorCallback().
|
private |
the LTE phy receive data end ok callback
Definition at line 494 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyRxDataEndOkCallback().
|
private |
the LTE phy receive PSS callback
Definition at line 498 of file lte-spectrum-phy.h.
Referenced by DoDispose(), SetLtePhyRxPssCallback(), and StartRxDlCtrl().
|
private |
the LTE phy UL HARQ feedback callback
Definition at line 520 of file lte-spectrum-phy.h.
Referenced by DoDispose(), EndRxData(), and SetLtePhyUlHarqFeedbackCallback().
|
private |
the modility model
Definition at line 468 of file lte-spectrum-phy.h.
Referenced by DoDispose(), GetMobility(), and SetMobility().
|
private |
the phy receive end error trace callback
Definition at line 491 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
the phy receive end ok trace callback
Definition at line 490 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().
|
private |
the phy receive start trace callback
Definition at line 489 of file lte-spectrum-phy.h.
Referenced by GetTypeId(), and StartRxData().
|
private |
the phy transmit end trace callback
Definition at line 488 of file lte-spectrum-phy.h.
Referenced by EndTxData(), and GetTypeId().
|
private |
the phy transmit start trace callback
Definition at line 487 of file lte-spectrum-phy.h.
Referenced by GetTypeId(), and StartTxDataFrame().
|
private |
Provides uniform random variables.
Definition at line 510 of file lte-spectrum-phy.h.
Referenced by AssignStreams(), EndRxData(), EndRxDlCtrl(), and LteSpectrumPhy().
|
private |
the receive control message list
Definition at line 480 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), Reset(), StartRxData(), StartRxDlCtrl(), and StartRxUlSrs().
|
private |
the receive burst list
Definition at line 477 of file lte-spectrum-phy.h.
Referenced by EndRxData(), Reset(), and StartRxData().
|
private |
the spectrum model
Definition at line 474 of file lte-spectrum-phy.h.
Referenced by GetRxSpectrumModel(), Reset(), and SetNoisePowerSpectralDensity().
|
private |
the preceived SINR
Definition at line 507 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), and UpdateSinrPerceived().
|
private |
the state
Definition at line 483 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 |
for UEs: store the transmission mode
Definition at line 514 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), Reset(), and SetTransmissionMode().
|
private |
the transmit control message list
Definition at line 479 of file lte-spectrum-phy.h.
Referenced by Reset().
|
private |
duplicate value of LteUePhy
Definition at line 516 of file lte-spectrum-phy.h.
Referenced by EndRxData(), EndRxDlCtrl(), LteSpectrumPhy(), SetTransmissionMode(), SetTxModeGain(), and ~LteSpectrumPhy().
|
private |
the transmit packet burst
Definition at line 476 of file lte-spectrum-phy.h.
Referenced by EndTxData(), EndTxDlCtrl(), EndTxUlSrs(), Reset(), and StartTxDataFrame().
|
private |
the transmit PSD
Definition at line 475 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 534 of file lte-spectrum-phy.h.
Referenced by EndRxData(), and GetTypeId().