#include <introspected-doxygen.h>
Public Types | |
enum | FrameDurationCode { FRAME_DURATION_2_POINT_5_MS, FRAME_DURATION_4_MS, FRAME_DURATION_5_MS, FRAME_DURATION_8_MS, FRAME_DURATION_10_MS, FRAME_DURATION_12_POINT_5_MS, FRAME_DURATION_20_MS } |
Public Types inherited from ns3::WimaxPhy | |
enum | ModulationType { MODULATION_TYPE_BPSK_12, MODULATION_TYPE_QPSK_12, MODULATION_TYPE_QPSK_34, MODULATION_TYPE_QAM16_12, MODULATION_TYPE_QAM16_34, MODULATION_TYPE_QAM64_23, MODULATION_TYPE_QAM64_34 } |
enum | PhyState { PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX } |
enum | PhyType { SimpleWimaxPhy, simpleOfdmWimaxPhy } |
Public Member Functions | |
SimpleOfdmWimaxPhy (char *tracesPath) | |
void | ActivateLoss (bool loss) |
if called with true it will enable the loss model More... | |
int64_t | AssignStreams (int64_t stream) |
void | DoAttach (Ptr< WimaxChannel > channel) |
uint32_t | GetBandwidth (void) const |
double | GetNoiseFigure (void) const |
WimaxPhy::PhyType | GetPhyType (void) const |
returns the type this physical layer More... | |
double | GetTxPower (void) const |
void | NotifyRxBegin (Ptr< PacketBurst > burst) |
void | NotifyRxDrop (Ptr< PacketBurst > burst) |
void | NotifyRxEnd (Ptr< PacketBurst > burst) |
void | NotifyTxBegin (Ptr< PacketBurst > burst) |
void | NotifyTxDrop (Ptr< PacketBurst > burst) |
void | NotifyTxEnd (Ptr< PacketBurst > burst) |
void | Send (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType, uint8_t direction) |
Sends a burst on the channel. More... | |
void | Send (SendParams *params) |
Sends a burst on the channel. More... | |
void | SetBandwidth (uint32_t BW) |
Set the bandwidth. More... | |
void | SetNoiseFigure (double nf) |
set the noise figure of the device More... | |
void | SetReceiveCallback (Callback< void, Ptr< PacketBurst >, Ptr< WimaxConnection > > callback) |
set the callback function to call when a burst is received | |
void | SetSNRToBlockErrorRateTracesPath (char *tracesPath) |
Set the path of the repository containing the traces. More... | |
void | SetTxPower (double txPower) |
set the transmission power More... | |
void | StartReceive (uint32_t burstSize, bool isFirstBlock, uint64_t frequency, WimaxPhy::ModulationType modulationType, uint8_t direction, double rxPower, Ptr< PacketBurst > burst) |
start the reception of a fec block More... | |
Public Member Functions inherited from ns3::WimaxPhy | |
void | Attach (Ptr< WimaxChannel > channel) |
Ptr< WimaxChannel > | GetChannel (void) const |
uint32_t | GetChannelBandwidth (void) const |
EventId | GetChnlSrchTimeoutEvent (void) const |
uint32_t | GetDataRate (ModulationType modulationType) const |
Ptr< NetDevice > | GetDevice (void) const |
Time | GetFrameDuration (void) const |
Time | GetFrameDuration (uint8_t frameDurationCode) const |
uint8_t | GetFrameDurationCode (void) const |
Time | GetFrameDurationSec (void) const |
uint32_t | GetFrequency (void) const |
double | GetGValue (void) const |
virtual Ptr< Object > | GetMobility (void) |
uint16_t | GetNfft (void) const |
uint64_t | GetNrBytes (uint32_t symbols, ModulationType modulationType) const |
uint8_t | GetNrCarriers (void) const |
uint64_t | GetNrSymbols (uint32_t size, ModulationType modulationType) const |
Time | GetPsDuration (void) const |
uint16_t | GetPsPerFrame (void) const |
uint16_t | GetPsPerSymbol (void) const |
Callback< void, Ptr< const PacketBurst > > | GetReceiveCallback (void) const |
uint16_t | GetRtg (void) const |
uint64_t | GetRxFrequency (void) const |
double | GetSamplingFactor (void) const |
double | GetSamplingFrequency (void) const |
uint64_t | GetScanningFrequency (void) const |
PhyState | GetState (void) const |
Time | GetSymbolDuration (void) const |
uint32_t | GetSymbolsPerFrame (void) const |
Time | GetTransmissionTime (uint32_t size, ModulationType modulationType) const |
uint16_t | GetTtg (void) const |
uint64_t | GetTxFrequency (void) const |
bool | IsDuplex (void) const |
void | SetChannelBandwidth (uint32_t channelBandwidth) |
Set the channel bandwidth. More... | |
void | SetDataRates (void) |
calculates the data rate of each modulation and save them for future use | |
void | SetDevice (Ptr< WimaxNetDevice > device) |
Set the device in which this physical layer is installed. More... | |
void | SetDuplex (uint64_t rxFrequency, uint64_t txFrequency) |
configure the physical layer in duplex mode More... | |
void | SetFrameDuration (Time frameDuration) |
Set the frame duration. More... | |
void | SetFrequency (uint32_t frequency) |
set the frequency on which the device should lock More... | |
virtual void | SetMobility (Ptr< Object > mobility) |
set the mobility model of the device More... | |
void | SetNrCarriers (uint8_t nrCarriers) |
Set the number of carriers in the physical frame. More... | |
void | SetPhyParameters (void) |
computes the Physical parameters and store them | |
void | SetPsDuration (Time psDuration) |
set the physical slot duration in seconds More... | |
void | SetPsPerFrame (uint16_t psPerFrame) |
set the number of physical slot per frame More... | |
void | SetPsPerSymbol (uint16_t psPerSymbol) |
set the number of physical slots per symbol More... | |
void | SetReceiveCallback (Callback< void, Ptr< const PacketBurst > > callback) |
set the callback function to call when a burst is received More... | |
void | SetScanningCallback (void) const |
calls the scanning call back function | |
void | SetSimplex (uint64_t frequency) |
configure the physical layer in simplex mode More... | |
void | SetState (PhyState state) |
set the state of the device More... | |
void | SetSymbolDuration (Time symbolDuration) |
set the OFMD symbol duration in second More... | |
void | SetSymbolsPerFrame (uint32_t symbolsPerFrame) |
set the number of symbols per frame More... | |
void | StartScanning (uint64_t frequency, Time timeout, Callback< void, bool, uint64_t > callback) |
scan the frequency frequency for maximum timeout seconds and calls callback if the frequency could be used More... | |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
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) |
Static Public Member Functions inherited from ns3::WimaxPhy | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
uint32_t | CalculateDataRate (WimaxPhy::ModulationType modulationType) const |
Ptr< PacketBurst > | ConvertBitsToBurst (bvec buffer) |
bvec | ConvertBurstToBits (Ptr< const PacketBurst > burst) |
void | CreateFecBlocks (const bvec &buffer, WimaxPhy::ModulationType modulationType) |
void | DoDispose (void) |
uint32_t | DoGetDataRate (WimaxPhy::ModulationType modulationType) const |
Time | DoGetFrameDuration (uint8_t frameDurationCode) const |
uint8_t | DoGetFrameDurationCode (void) const |
double | DoGetGValue (void) const |
uint16_t | DoGetNfft (void) const |
uint64_t | DoGetNrBytes (uint32_t symbols, WimaxPhy::ModulationType modulationType) const |
uint64_t | DoGetNrSymbols (uint32_t size, WimaxPhy::ModulationType modulationType) const |
uint16_t | DoGetRtg (void) const |
double | DoGetSamplingFactor (void) const |
double | DoGetSamplingFrequency (void) const |
Time | DoGetTransmissionTime (uint32_t size, WimaxPhy::ModulationType modulationType) const |
uint16_t | DoGetTtg (void) const |
void | DoSetDataRates (void) |
void | DoSetGValue (double) |
void | DoSetNfft (uint16_t) |
void | DoSetPhyParameters (void) |
void | EndReceive (Ptr< const PacketBurst > burst) |
void | EndReceiveFecBlock (uint32_t burstSize, WimaxPhy::ModulationType modulationType, uint8_t direction, uint8_t drop, Ptr< PacketBurst > burst) |
void | EndSend (void) |
void | EndSendFecBlock (WimaxPhy::ModulationType modulationType, uint8_t direction) |
Time | GetBlockTransmissionTime (WimaxPhy::ModulationType modulationType) const |
uint32_t | GetCodedFecBlockSize (WimaxPhy::ModulationType modulationType) const |
uint32_t | GetFecBlockSize (WimaxPhy::ModulationType type) const |
void | GetModulationFecParams (WimaxPhy::ModulationType modulationType, uint8_t &bitsPerSymbol, double &fecCode) const |
uint16_t | GetNrBlocks (uint32_t burstSize, WimaxPhy::ModulationType modulationType) const |
double | GetRxGain (void) const |
std::string | GetTraceFilePath (void) const |
double | GetTxGain (void) const |
void | InitSimpleOfdmWimaxPhy (void) |
bvec | RecreateBuffer () |
void | SetBlockParameters (uint32_t burstSize, WimaxPhy::ModulationType modulationType) |
void | SetRxGain (double rxgain) |
void | SetTraceFilePath (std::string path) |
void | SetTxGain (double txgain) |
void | StartSendDummyFecBlock (bool isFirstBlock, WimaxPhy::ModulationType modulationType, uint8_t direction) |
Private Attributes | |
double | m_bandWidth |
uint16_t | m_blockSize |
Time | m_blockTime |
Ptr< PacketBurst > | m_currentBurst |
uint32_t | m_currentBurstSize |
uint32_t | m_dataRateBpsk12 |
uint32_t | m_dataRateQam16_12 |
uint32_t | m_dataRateQam16_34 |
uint32_t | m_dataRateQam64_23 |
uint32_t | m_dataRateQam64_34 |
uint32_t | m_dataRateQpsk12 |
uint32_t | m_dataRateQpsk34 |
std::list< bvec > * | m_fecBlocks |
uint16_t | m_fecBlockSize |
double | m_g |
uint16_t | m_nbErroneousBlock |
uint16_t | m_nfft |
double | m_noiseFigure |
uint16_t | m_nrBlocks |
uint32_t | m_nrFecBlocksSent |
uint16_t | m_nrRecivedFecBlocks |
uint16_t | m_nrRemainingBlocksToSend |
uint32_t | m_paddingBits |
TracedCallback< Ptr < PacketBurst > > | m_phyRxBeginTrace |
TracedCallback< Ptr < PacketBurst > > | m_phyRxDropTrace |
TracedCallback< Ptr < PacketBurst > > | m_phyRxEndTrace |
TracedCallback< Ptr < PacketBurst > > | m_phyTxBeginTrace |
TracedCallback< Ptr < PacketBurst > > | m_phyTxDropTrace |
TracedCallback< Ptr < PacketBurst > > | m_phyTxEndTrace |
std::list< bvec > * | m_receivedFecBlocks |
double | m_rxGain |
SNRToBlockErrorRateManager * | m_snrToBlockErrorRateManager |
TracedCallback< Ptr< const PacketBurst > > | m_traceRx |
TracedCallback< Ptr< const PacketBurst > > | m_traceTx |
double | m_txGain |
double | m_txPower |
Ptr< UniformRandomVariable > | m_URNG |
Provides uniform random variables. | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
ns3::SimpleOfdmWimaxPhy is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 46 of file simple-ofdm-wimax-phy.h.
void ns3::SimpleOfdmWimaxPhy::ActivateLoss | ( | bool | loss | ) |
if called with true it will enable the loss model
loss | set to true to enable the loss model |
Definition at line 177 of file simple-ofdm-wimax-phy.cc.
References ns3::SNRToBlockErrorRateManager::ActivateLoss().
|
virtual |
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 |
Implements ns3::WimaxPhy.
Definition at line 1096 of file simple-ofdm-wimax-phy.cc.
References m_URNG, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
virtual |
Attach the physical layer to a channel.
channel | the channel to which the physical layer will be attached |
Implements ns3::WimaxPhy.
Definition at line 235 of file simple-ofdm-wimax-phy.cc.
References ns3::WimaxPhy::GetChannel().
|
privatevirtual |
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::WimaxPhy.
Definition at line 224 of file simple-ofdm-wimax-phy.cc.
References ns3::WimaxPhy::DoDispose().
uint32_t ns3::SimpleOfdmWimaxPhy::GetBandwidth | ( | void | ) | const |
Definition at line 190 of file simple-ofdm-wimax-phy.cc.
References ns3::WimaxPhy::GetChannelBandwidth().
Referenced by StartReceive().
double ns3::SimpleOfdmWimaxPhy::GetNoiseFigure | ( | void | ) | const |
Definition at line 213 of file simple-ofdm-wimax-phy.cc.
|
virtual |
returns the type this physical layer
Implements ns3::WimaxPhy.
Definition at line 251 of file simple-ofdm-wimax-phy.cc.
double ns3::SimpleOfdmWimaxPhy::GetTxPower | ( | void | ) | const |
Definition at line 202 of file simple-ofdm-wimax-phy.cc.
void ns3::SimpleOfdmWimaxPhy::NotifyRxBegin | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyRxBegin trace. Implemented for encapsulation purposes.
Definition at line 1078 of file simple-ofdm-wimax-phy.cc.
References m_phyRxBeginTrace.
Referenced by StartReceive().
void ns3::SimpleOfdmWimaxPhy::NotifyRxDrop | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyRxDrop trace. Implemented for encapsulation purposes.
Definition at line 1090 of file simple-ofdm-wimax-phy.cc.
References m_phyRxDropTrace.
void ns3::SimpleOfdmWimaxPhy::NotifyRxEnd | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyRxEnd trace. Implemented for encapsulation purposes.
Definition at line 1084 of file simple-ofdm-wimax-phy.cc.
References m_phyRxEndTrace.
void ns3::SimpleOfdmWimaxPhy::NotifyTxBegin | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyTxBegin trace. Implemented for encapsulation purposes.
Definition at line 1060 of file simple-ofdm-wimax-phy.cc.
References m_phyTxBeginTrace.
Referenced by Send().
void ns3::SimpleOfdmWimaxPhy::NotifyTxDrop | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyTxDrop trace. Implemented for encapsulation purposes.
Definition at line 1072 of file simple-ofdm-wimax-phy.cc.
References m_phyTxDropTrace.
void ns3::SimpleOfdmWimaxPhy::NotifyTxEnd | ( | Ptr< PacketBurst > | burst | ) |
Public method used to fire a PhyTxEnd trace. Implemented for encapsulation purposes.
Definition at line 1066 of file simple-ofdm-wimax-phy.cc.
References m_phyTxEndTrace.
void ns3::SimpleOfdmWimaxPhy::Send | ( | Ptr< PacketBurst > | burst, |
WimaxPhy::ModulationType | modulationType, | ||
uint8_t | direction | ||
) |
Sends a burst on the channel.
burst | the burst to send |
modulationType | the modulation that will be used to send this burst |
direction | set to uplink or downlink |
Definition at line 257 of file simple-ofdm-wimax-phy.cc.
References ns3::WimaxPhy::GetState(), and NotifyTxBegin().
Referenced by Send().
|
virtual |
Sends a burst on the channel.
Implements ns3::WimaxPhy.
Definition at line 241 of file simple-ofdm-wimax-phy.cc.
References Send().
void ns3::SimpleOfdmWimaxPhy::SetBandwidth | ( | uint32_t | BW | ) |
Set the bandwidth.
BW | the bandwidth |
Definition at line 196 of file simple-ofdm-wimax-phy.cc.
References ns3::WimaxPhy::SetChannelBandwidth().
void ns3::SimpleOfdmWimaxPhy::SetNoiseFigure | ( | double | nf | ) |
set the noise figure of the device
nf | the noise figure |
Definition at line 218 of file simple-ofdm-wimax-phy.cc.
void ns3::SimpleOfdmWimaxPhy::SetSNRToBlockErrorRateTracesPath | ( | char * | tracesPath | ) |
Set the path of the repository containing the traces.
tracesPath | the path to the repository. see snr-to-block-error-rate-manager.h for more details. |
Definition at line 183 of file simple-ofdm-wimax-phy.cc.
References ns3::SNRToBlockErrorRateManager::ReLoadTraces(), and ns3::SNRToBlockErrorRateManager::SetTraceFilePath().
void ns3::SimpleOfdmWimaxPhy::SetTxPower | ( | double | txPower | ) |
set the transmission power
txPower | the transmission power |
Definition at line 207 of file simple-ofdm-wimax-phy.cc.
void ns3::SimpleOfdmWimaxPhy::StartReceive | ( | uint32_t | burstSize, |
bool | isFirstBlock, | ||
uint64_t | frequency, | ||
WimaxPhy::ModulationType | modulationType, | ||
uint8_t | direction, | ||
double | rxPower, | ||
Ptr< PacketBurst > | burst | ||
) |
start the reception of a fec block
burstSize | the burst size |
isFirstBlock | true if this block is the first one, false otherwise |
frequency | the frequency in wich the fec block is being received |
modulationType | the modulation used to transmit this fec Block |
direction | set to uplink and downlink |
rxPower | the received power. |
burst | the burst to be sent |
Definition at line 338 of file simple-ofdm-wimax-phy.cc.
References ns3::Simulator::Cancel(), GetBandwidth(), ns3::SNRToBlockErrorRateRecord::GetI1(), ns3::SNRToBlockErrorRateRecord::GetI2(), ns3::WimaxPhy::GetRxFrequency(), ns3::WimaxPhy::GetScanningFrequency(), ns3::SNRToBlockErrorRateManager::GetSNRToBlockErrorRateRecord(), ns3::WimaxPhy::GetState(), ns3::UniformRandomVariable::GetValue(), ns3::WimaxPhy::IsDuplex(), m_URNG, NotifyRxBegin(), NS_LOG_INFO, ns3::Simulator::Schedule(), ns3::WimaxPhy::SetScanningCallback(), ns3::WimaxPhy::SetSimplex(), and ns3::WimaxPhy::SetState().
|
private |
The trace source fired when a packet begins the reception process from the medium.
Definition at line 301 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyRxBegin().
|
private |
The trace source fired when the phy layer drops a packet it has received.
Definition at line 316 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyRxDrop().
|
private |
The trace source fired when a packet ends the reception process from the medium.
Definition at line 309 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyRxEnd().
|
private |
The trace source fired when a packet begins the transmission process on the medium.
Definition at line 277 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyTxBegin().
|
private |
The trace source fired when the phy layer drops a packet as it tries to transmit it.
Definition at line 293 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyTxDrop().
|
private |
The trace source fired when a packet ends the transmission process on the medium.
Definition at line 285 of file simple-ofdm-wimax-phy.h.
Referenced by NotifyTxEnd().