A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::SimpleOfdmWimaxPhy Class Reference

#include <simple-ofdm-wimax-phy.h>

+ Inheritance diagram for ns3::SimpleOfdmWimaxPhy:
+ Collaboration diagram for ns3::SimpleOfdmWimaxPhy:

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 (void)
 
 SimpleOfdmWimaxPhy (char *tracesPath)
 
 ~SimpleOfdmWimaxPhy (void)
 
void ActivateLoss (bool loss)
 if called with true it will enable the loss model More...
 
int64_t AssignStreams (int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
void DoAttach (Ptr< WimaxChannel > channel)
 Attach the physical layer to a channel. More...
 
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)
 Public method used to fire a PhyRxBegin trace. More...
 
void NotifyRxDrop (Ptr< PacketBurst > burst)
 Public method used to fire a PhyRxDrop trace. More...
 
void NotifyRxEnd (Ptr< PacketBurst > burst)
 Public method used to fire a PhyRxEnd trace. More...
 
void NotifyTxBegin (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxBegin trace. More...
 
void NotifyTxDrop (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxDrop trace. More...
 
void NotifyTxEnd (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxEnd trace. More...
 
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 More...
 
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
 WimaxPhy (void)
 
virtual ~WimaxPhy (void)
 
void Attach (Ptr< WimaxChannel > channel)
 Attach the physical layer to a channel. More...
 
Ptr< WimaxChannelGetChannel (void) const
 
uint32_t GetChannelBandwidth (void) const
 
EventId GetChnlSrchTimeoutEvent (void) const
 
uint32_t GetDataRate (ModulationType modulationType) const
 
Ptr< NetDeviceGetDevice (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< ObjectGetMobility (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 More...
 
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 More...
 
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 More...
 
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
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
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)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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
 
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)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

uint32_t CalculateDataRate (WimaxPhy::ModulationType modulationType) const
 
Ptr< PacketBurstConvertBitsToBurst (bvec buffer)
 
bvec ConvertBurstToBits (Ptr< const PacketBurst > burst)
 
void CreateFecBlocks (const bvec &buffer, WimaxPhy::ModulationType modulationType)
 
void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
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< PacketBurstm_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
 The trace source fired when a packet begins the reception process from the medium. More...
 
TracedCallback< Ptr
< PacketBurst > > 
m_phyRxDropTrace
 The trace source fired when the phy layer drops a packet it has received. More...
 
TracedCallback< Ptr
< PacketBurst > > 
m_phyRxEndTrace
 The trace source fired when a packet ends the reception process from the medium. More...
 
TracedCallback< Ptr
< PacketBurst > > 
m_phyTxBeginTrace
 The trace source fired when a packet begins the transmission process on the medium. More...
 
TracedCallback< Ptr
< PacketBurst > > 
m_phyTxDropTrace
 The trace source fired when the phy layer drops a packet as it tries to transmit it. More...
 
TracedCallback< Ptr
< PacketBurst > > 
m_phyTxEndTrace
 The trace source fired when a packet ends the transmission process on the medium. More...
 
std::list< bvec > * m_receivedFecBlocks
 
double m_rxGain
 
SNRToBlockErrorRateManagerm_snrToBlockErrorRateManager
 
TracedCallback< Ptr< const
PacketBurst > > 
m_traceRx
 
TracedCallback< Ptr< const
PacketBurst > > 
m_traceTx
 
double m_txGain
 
double m_txPower
 
Ptr< UniformRandomVariablem_URNG
 Provides uniform random variables. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Config Paths

ns3::SimpleOfdmWimaxPhy is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/$ns3::SimpleOfdmWimaxPhy

Attributes

  • NoiseFigure: Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5
    • Flags: construct write read
  • TxPower: Transmission power (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 30
    • Flags: construct write read
  • G: This is the ratio of CP time to useful time.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.25
    • Flags: construct write read
  • TxGain: Transmission gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • RxGain: Reception gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • Nfft: FFT size
  • TraceFilePath: Path to the directory containing SNR to block error rate files
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value:
    • Flags: construct write read

Attributes defined in parent class ns3::WimaxPhy

  • Channel: Wimax channel
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WimaxChannel >
    • Initial value: 0
    • Flags: construct write read
  • FrameDuration: The frame duration in seconds.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +10000000.0ns
    • Flags: construct write read
  • Frequency: The central frequency in KHz.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 1000000:11000000
    • Initial value: 5000000
    • Flags: construct write read
  • Bandwidth: The channel bandwidth in Hz.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 5000000:30000000
    • Initial value: 10000000
    • Flags: construct write read

TraceSources

  • Rx: Receive trace
  • Tx: Transmit trace
  • PhyTxBegin: Trace source indicating a packet has begun transmitting over the channel medium
  • PhyTxEnd: Trace source indicating a packet has been completely transmitted over the channel
  • PhyTxDrop: Trace source indicating a packet has been dropped by the device during transmission
  • PhyRxBegin: Trace source indicating a packet has begun being received from the channel medium by the device
  • PhyRxEnd: Trace source indicating a packet has been completely received from the channel medium by the device
  • PhyRxDrop: Trace source indicating a packet has been dropped by the device during reception

Definition at line 46 of file simple-ofdm-wimax-phy.h.

Member Enumeration Documentation

Enumerator
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 

Definition at line 49 of file simple-ofdm-wimax-phy.h.

Constructor & Destructor Documentation

ns3::SimpleOfdmWimaxPhy::SimpleOfdmWimaxPhy ( void  )
ns3::SimpleOfdmWimaxPhy::SimpleOfdmWimaxPhy ( char *  tracesPath)
ns3::SimpleOfdmWimaxPhy::~SimpleOfdmWimaxPhy ( void  )

Definition at line 172 of file simple-ofdm-wimax-phy.cc.

Member Function Documentation

void ns3::SimpleOfdmWimaxPhy::ActivateLoss ( bool  loss)

if called with true it will enable the loss model

Parameters
lossset to true to enable the loss model

Definition at line 178 of file simple-ofdm-wimax-phy.cc.

References ns3::SNRToBlockErrorRateManager::ActivateLoss(), and m_snrToBlockErrorRateManager.

+ Here is the call graph for this function:

int64_t ns3::SimpleOfdmWimaxPhy::AssignStreams ( int64_t  stream)
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.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Implements ns3::WimaxPhy.

Definition at line 1099 of file simple-ofdm-wimax-phy.cc.

References m_URNG, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

uint32_t ns3::SimpleOfdmWimaxPhy::CalculateDataRate ( WimaxPhy::ModulationType  modulationType) const
private

Definition at line 655 of file simple-ofdm-wimax-phy.cc.

References GetModulationFecParams(), ns3::WimaxPhy::GetNrCarriers(), ns3::Time::GetSeconds(), and ns3::WimaxPhy::GetSymbolDuration().

Referenced by DoSetDataRates().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< PacketBurst > ns3::SimpleOfdmWimaxPhy::ConvertBitsToBurst ( bvec  buffer)
private

Definition at line 514 of file simple-ofdm-wimax-phy.cc.

bvec ns3::SimpleOfdmWimaxPhy::ConvertBurstToBits ( Ptr< const PacketBurst burst)
private

Definition at line 474 of file simple-ofdm-wimax-phy.cc.

References ns3::Packet::CopyData(), ns3::Packet::GetSize(), and list.

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::CreateFecBlocks ( const bvec buffer,
WimaxPhy::ModulationType  modulationType 
)
private

Definition at line 566 of file simple-ofdm-wimax-phy.cc.

References m_blockSize, m_fecBlocks, m_nrBlocks, and m_paddingBits.

void ns3::SimpleOfdmWimaxPhy::DoAttach ( Ptr< WimaxChannel channel)
virtual

Attach the physical layer to a channel.

Parameters
channelthe channel to which the physical layer will be attached

Implements ns3::WimaxPhy.

Definition at line 236 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetChannel().

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::DoDispose ( void  )
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 225 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::DoDispose(), m_fecBlocks, m_receivedFecBlocks, and m_snrToBlockErrorRateManager.

+ Here is the call graph for this function:

Time ns3::SimpleOfdmWimaxPhy::DoGetFrameDuration ( uint8_t  frameDurationCode) const
privatevirtual
uint8_t ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode ( void  ) const
privatevirtual
double ns3::SimpleOfdmWimaxPhy::DoGetGValue ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 1011 of file simple-ofdm-wimax-phy.cc.

References m_g.

Referenced by DoSetPhyParameters(), and GetTypeId().

+ Here is the caller graph for this function:

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetNfft ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 960 of file simple-ofdm-wimax-phy.cc.

References m_nfft.

Referenced by DoSetPhyParameters(), and GetTypeId().

+ Here is the caller graph for this function:

uint64_t ns3::SimpleOfdmWimaxPhy::DoGetNrBytes ( uint32_t  symbols,
WimaxPhy::ModulationType  modulationType 
) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 722 of file simple-ofdm-wimax-phy.cc.

References DoGetDataRate(), ns3::Time::GetSeconds(), and ns3::WimaxPhy::GetSymbolDuration().

+ Here is the call graph for this function:

uint64_t ns3::SimpleOfdmWimaxPhy::DoGetNrSymbols ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 714 of file simple-ofdm-wimax-phy.cc.

References DoGetDataRate(), GetFecBlockSize(), GetNrBlocks(), ns3::Time::GetSeconds(), and ns3::WimaxPhy::GetSymbolDuration().

Referenced by DoGetTransmissionTime().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetRtg ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 815 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetPsPerSymbol().

+ Here is the call graph for this function:

double ns3::SimpleOfdmWimaxPhy::DoGetSamplingFactor ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 967 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetChannelBandwidth(), NS_FATAL_ERROR, and NS_LOG_DEBUG.

Referenced by DoGetSamplingFrequency().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::SimpleOfdmWimaxPhy::DoGetSamplingFrequency ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 1003 of file simple-ofdm-wimax-phy.cc.

References DoGetSamplingFactor(), and ns3::WimaxPhy::GetChannelBandwidth().

Referenced by DoSetPhyParameters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::SimpleOfdmWimaxPhy::DoGetTransmissionTime ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 705 of file simple-ofdm-wimax-phy.cc.

References DoGetNrSymbols(), and ns3::WimaxPhy::GetSymbolDuration().

+ Here is the call graph for this function:

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetTtg ( void  ) const
privatevirtual

Implements ns3::WimaxPhy.

Definition at line 808 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetPsPerSymbol().

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::DoSetGValue ( double  g)
private

Definition at line 1018 of file simple-ofdm-wimax-phy.cc.

References m_g.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::DoSetNfft ( uint16_t  nfft)
private

Definition at line 953 of file simple-ofdm-wimax-phy.cc.

References m_nfft.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::EndReceive ( Ptr< const PacketBurst burst)
private

Definition at line 466 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetReceiveCallback(), and m_traceRx.

Referenced by EndReceiveFecBlock().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::EndReceiveFecBlock ( uint32_t  burstSize,
WimaxPhy::ModulationType  modulationType,
uint8_t  direction,
uint8_t  drop,
Ptr< PacketBurst burst 
)
private

Definition at line 432 of file simple-ofdm-wimax-phy.cc.

References EndReceive(), m_blockSize, m_nbErroneousBlock, m_nrRecivedFecBlocks, m_paddingBits, NotifyRxDrop(), NotifyRxEnd(), ns3::WimaxPhy::PHY_STATE_IDLE, ns3::Simulator::Schedule(), and ns3::WimaxPhy::SetState().

Referenced by StartReceive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::EndSend ( void  )
private

Definition at line 335 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::PHY_STATE_IDLE, and ns3::WimaxPhy::SetState().

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::EndSendFecBlock ( WimaxPhy::ModulationType  modulationType,
uint8_t  direction 
)
private

Definition at line 316 of file simple-ofdm-wimax-phy.cc.

References m_blockSize, m_currentBurst, m_currentBurstSize, m_nrFecBlocksSent, m_nrRemainingBlocksToSend, m_paddingBits, NotifyTxEnd(), NS_ASSERT_MSG, ns3::WimaxPhy::PHY_STATE_IDLE, ns3::WimaxPhy::SetState(), and StartSendDummyFecBlock().

Referenced by StartSendDummyFecBlock().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::SimpleOfdmWimaxPhy::GetBandwidth ( void  ) const
Returns
the bandwidth

Definition at line 191 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetChannelBandwidth().

Referenced by StartReceive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::SimpleOfdmWimaxPhy::GetBlockTransmissionTime ( WimaxPhy::ModulationType  modulationType) const
private

Definition at line 699 of file simple-ofdm-wimax-phy.cc.

References DoGetDataRate(), and GetFecBlockSize().

Referenced by StartReceive(), and StartSendDummyFecBlock().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::GetModulationFecParams ( WimaxPhy::ModulationType  modulationType,
uint8_t &  bitsPerSymbol,
double &  fecCode 
) const
private
double ns3::SimpleOfdmWimaxPhy::GetNoiseFigure ( void  ) const
Returns
the noise figure

Definition at line 214 of file simple-ofdm-wimax-phy.cc.

References m_noiseFigure.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint16_t ns3::SimpleOfdmWimaxPhy::GetNrBlocks ( uint32_t  burstSize,
WimaxPhy::ModulationType  modulationType 
) const
private

Definition at line 910 of file simple-ofdm-wimax-phy.cc.

References GetFecBlockSize().

Referenced by DoGetNrSymbols(), and SetBlockParameters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WimaxPhy::PhyType ns3::SimpleOfdmWimaxPhy::GetPhyType ( void  ) const
virtual

returns the type this physical layer

Returns
always WimaxPhy::simpleOfdmWimaxPhy;

Implements ns3::WimaxPhy.

Definition at line 253 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::simpleOfdmWimaxPhy.

double ns3::SimpleOfdmWimaxPhy::GetRxGain ( void  ) const
private

Definition at line 1043 of file simple-ofdm-wimax-phy.cc.

References m_rxGain.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

std::string ns3::SimpleOfdmWimaxPhy::GetTraceFilePath ( void  ) const
private

Definition at line 1049 of file simple-ofdm-wimax-phy.cc.

References ns3::SNRToBlockErrorRateManager::GetTraceFilePath(), and m_snrToBlockErrorRateManager.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::SimpleOfdmWimaxPhy::GetTxGain ( void  ) const
private

Definition at line 1037 of file simple-ofdm-wimax-phy.cc.

References m_txGain.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::SimpleOfdmWimaxPhy::GetTxPower ( void  ) const
Returns
the transmission power

Definition at line 203 of file simple-ofdm-wimax-phy.cc.

References m_txPower.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::NotifyRxBegin ( Ptr< PacketBurst burst)

Public method used to fire a PhyRxBegin trace.

Implemented for encapsulation purposes.

Definition at line 1081 of file simple-ofdm-wimax-phy.cc.

References m_phyRxBeginTrace.

Referenced by StartReceive().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::NotifyRxDrop ( Ptr< PacketBurst burst)

Public method used to fire a PhyRxDrop trace.

Implemented for encapsulation purposes.

Definition at line 1093 of file simple-ofdm-wimax-phy.cc.

References m_phyRxDropTrace.

Referenced by EndReceiveFecBlock().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::NotifyRxEnd ( Ptr< PacketBurst burst)

Public method used to fire a PhyRxEnd trace.

Implemented for encapsulation purposes.

Definition at line 1087 of file simple-ofdm-wimax-phy.cc.

References m_phyRxEndTrace.

Referenced by EndReceiveFecBlock().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::NotifyTxBegin ( Ptr< PacketBurst burst)

Public method used to fire a PhyTxBegin trace.

Implemented for encapsulation purposes.

Definition at line 1063 of file simple-ofdm-wimax-phy.cc.

References m_phyTxBeginTrace.

Referenced by Send().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::NotifyTxDrop ( Ptr< PacketBurst burst)

Public method used to fire a PhyTxDrop trace.

Implemented for encapsulation purposes.

Definition at line 1075 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 1069 of file simple-ofdm-wimax-phy.cc.

References m_phyTxEndTrace.

Referenced by EndSendFecBlock().

+ Here is the caller graph for this function:

bvec ns3::SimpleOfdmWimaxPhy::RecreateBuffer ( )
private

Definition at line 588 of file simple-ofdm-wimax-phy.cc.

References m_blockSize, m_nrBlocks, and m_receivedFecBlocks.

void ns3::SimpleOfdmWimaxPhy::Send ( Ptr< PacketBurst burst,
WimaxPhy::ModulationType  modulationType,
uint8_t  direction 
)

Sends a burst on the channel.

Parameters
burstthe burst to send
modulationTypethe modulation that will be used to send this burst
directionset to uplink or downlink

Definition at line 259 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::GetState(), m_currentBurst, m_currentBurstSize, m_nrFecBlocksSent, m_traceTx, NotifyTxBegin(), ns3::WimaxPhy::PHY_STATE_TX, SetBlockParameters(), and StartSendDummyFecBlock().

Referenced by Send().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::Send ( SendParams params)
virtual

Sends a burst on the channel.

See also
SendParams

Implements ns3::WimaxPhy.

Definition at line 242 of file simple-ofdm-wimax-phy.cc.

References ns3::OfdmSendParams::GetBurst(), ns3::OfdmSendParams::GetDirection(), ns3::OfdmSendParams::GetModulationType(), NS_ASSERT, and Send().

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetBandwidth ( uint32_t  BW)

Set the bandwidth.

Parameters
BWthe bandwidth

Definition at line 197 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::SetChannelBandwidth().

Referenced by InitSimpleOfdmWimaxPhy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetBlockParameters ( uint32_t  burstSize,
WimaxPhy::ModulationType  modulationType 
)
private

Definition at line 798 of file simple-ofdm-wimax-phy.cc.

References GetFecBlockSize(), GetNrBlocks(), m_blockSize, m_nrBlocks, m_nrRemainingBlocksToSend, m_paddingBits, and NS_ASSERT_MSG.

Referenced by Send(), and StartReceive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetNoiseFigure ( double  nf)

set the noise figure of the device

Parameters
nfthe noise figure

Definition at line 219 of file simple-ofdm-wimax-phy.cc.

References m_noiseFigure.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetReceiveCallback ( Callback< void, Ptr< PacketBurst >, Ptr< WimaxConnection > >  callback)

set the callback function to call when a burst is received

void ns3::SimpleOfdmWimaxPhy::SetRxGain ( double  rxgain)
private

Definition at line 1031 of file simple-ofdm-wimax-phy.cc.

References m_rxGain.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetSNRToBlockErrorRateTracesPath ( char *  tracesPath)

Set the path of the repository containing the traces.

Parameters
tracesPaththe path to the repository. see snr-to-block-error-rate-manager.h for more details.

Definition at line 184 of file simple-ofdm-wimax-phy.cc.

References m_snrToBlockErrorRateManager, ns3::SNRToBlockErrorRateManager::ReLoadTraces(), and ns3::SNRToBlockErrorRateManager::SetTraceFilePath().

+ Here is the call graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetTraceFilePath ( std::string  path)
private

Definition at line 1055 of file simple-ofdm-wimax-phy.cc.

References ns3::SNRToBlockErrorRateManager::LoadTraces(), m_snrToBlockErrorRateManager, and ns3::SNRToBlockErrorRateManager::SetTraceFilePath().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetTxGain ( double  txgain)
private

Definition at line 1025 of file simple-ofdm-wimax-phy.cc.

References m_txGain.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::SetTxPower ( double  txPower)

set the transmission power

Parameters
txPowerthe transmission power

Definition at line 208 of file simple-ofdm-wimax-phy.cc.

References m_txPower.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::SimpleOfdmWimaxPhy::StartReceive ( uint32_t  burstSize,
bool  isFirstBlock,
uint64_t  frequency,
WimaxPhy::ModulationType  modulationType,
uint8_t  direction,
double  rxPower,
Ptr< PacketBurst burst 
)
void ns3::SimpleOfdmWimaxPhy::StartSendDummyFecBlock ( bool  isFirstBlock,
WimaxPhy::ModulationType  modulationType,
uint8_t  direction 
)
private

Member Data Documentation

double ns3::SimpleOfdmWimaxPhy::m_bandWidth
private

Definition at line 266 of file simple-ofdm-wimax-phy.h.

uint16_t ns3::SimpleOfdmWimaxPhy::m_blockSize
private
Time ns3::SimpleOfdmWimaxPhy::m_blockTime
private

Definition at line 247 of file simple-ofdm-wimax-phy.h.

Referenced by StartReceive(), and StartSendDummyFecBlock().

Ptr<PacketBurst> ns3::SimpleOfdmWimaxPhy::m_currentBurst
private

Definition at line 259 of file simple-ofdm-wimax-phy.h.

Referenced by EndSendFecBlock(), Send(), and StartSendDummyFecBlock().

uint32_t ns3::SimpleOfdmWimaxPhy::m_currentBurstSize
private
uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateBpsk12
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam16_12
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam16_34
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam64_23
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam64_34
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQpsk12
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQpsk34
private

Definition at line 253 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetDataRate(), DoSetDataRates(), and InitSimpleOfdmWimaxPhy().

std::list<bvec>* ns3::SimpleOfdmWimaxPhy::m_fecBlocks
private

Definition at line 246 of file simple-ofdm-wimax-phy.h.

Referenced by CreateFecBlocks(), DoDispose(), and InitSimpleOfdmWimaxPhy().

uint16_t ns3::SimpleOfdmWimaxPhy::m_fecBlockSize
private

Definition at line 241 of file simple-ofdm-wimax-phy.h.

Referenced by InitSimpleOfdmWimaxPhy().

double ns3::SimpleOfdmWimaxPhy::m_g
private

Definition at line 265 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetGValue(), DoSetGValue(), and InitSimpleOfdmWimaxPhy().

uint16_t ns3::SimpleOfdmWimaxPhy::m_nbErroneousBlock
private

Definition at line 262 of file simple-ofdm-wimax-phy.h.

Referenced by EndReceiveFecBlock(), and InitSimpleOfdmWimaxPhy().

uint16_t ns3::SimpleOfdmWimaxPhy::m_nfft
private

Definition at line 264 of file simple-ofdm-wimax-phy.h.

Referenced by DoGetNfft(), DoSetNfft(), and InitSimpleOfdmWimaxPhy().

double ns3::SimpleOfdmWimaxPhy::m_noiseFigure
private
uint16_t ns3::SimpleOfdmWimaxPhy::m_nrBlocks
private
uint32_t ns3::SimpleOfdmWimaxPhy::m_nrFecBlocksSent
private

Definition at line 245 of file simple-ofdm-wimax-phy.h.

Referenced by EndSendFecBlock(), InitSimpleOfdmWimaxPhy(), and Send().

uint16_t ns3::SimpleOfdmWimaxPhy::m_nrRecivedFecBlocks
private
uint16_t ns3::SimpleOfdmWimaxPhy::m_nrRemainingBlocksToSend
private
uint32_t ns3::SimpleOfdmWimaxPhy::m_paddingBits
private
TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyRxBeginTrace
private

The trace source fired when a packet begins the reception process from the medium.

See also
class CallBackTraceSource

Definition at line 301 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyRxBegin().

TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyRxDropTrace
private

The trace source fired when the phy layer drops a packet it has received.

See also
class CallBackTraceSource

Definition at line 316 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyRxDrop().

TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyRxEndTrace
private

The trace source fired when a packet ends the reception process from the medium.

See also
class CallBackTraceSource

Definition at line 309 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyRxEnd().

TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyTxBeginTrace
private

The trace source fired when a packet begins the transmission process on the medium.

See also
class CallBackTraceSource

Definition at line 277 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyTxBegin().

TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyTxDropTrace
private

The trace source fired when the phy layer drops a packet as it tries to transmit it.

See also
class CallBackTraceSource

Definition at line 293 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyTxDrop().

TracedCallback<Ptr<PacketBurst > > ns3::SimpleOfdmWimaxPhy::m_phyTxEndTrace
private

The trace source fired when a packet ends the transmission process on the medium.

See also
class CallBackTraceSource

Definition at line 285 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and NotifyTxEnd().

std::list<bvec>* ns3::SimpleOfdmWimaxPhy::m_receivedFecBlocks
private
double ns3::SimpleOfdmWimaxPhy::m_rxGain
private

Definition at line 270 of file simple-ofdm-wimax-phy.h.

Referenced by GetRxGain(), InitSimpleOfdmWimaxPhy(), and SetRxGain().

TracedCallback<Ptr<const PacketBurst> > ns3::SimpleOfdmWimaxPhy::m_traceRx
private

Definition at line 249 of file simple-ofdm-wimax-phy.h.

Referenced by EndReceive(), and GetTypeId().

TracedCallback<Ptr<const PacketBurst> > ns3::SimpleOfdmWimaxPhy::m_traceTx
private

Definition at line 250 of file simple-ofdm-wimax-phy.h.

Referenced by GetTypeId(), and Send().

double ns3::SimpleOfdmWimaxPhy::m_txGain
private

Definition at line 269 of file simple-ofdm-wimax-phy.h.

Referenced by GetTxGain(), InitSimpleOfdmWimaxPhy(), and SetTxGain().

double ns3::SimpleOfdmWimaxPhy::m_txPower
private
Ptr<UniformRandomVariable> ns3::SimpleOfdmWimaxPhy::m_URNG
private

Provides uniform random variables.

Definition at line 321 of file simple-ofdm-wimax-phy.h.

Referenced by AssignStreams(), SimpleOfdmWimaxPhy(), and StartReceive().


The documentation for this class was generated from the following files: