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
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
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.
void Send (SendParams *params)
 Sends a burst on the channel.
void SetBandwidth (uint32_t BW)
 Set the bandwidth.
void SetNoiseFigure (double nf)
 set the noise figure of the device
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.
void SetTxPower (double txPower)
 set the transmission power
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
- Public Member Functions inherited from ns3::WimaxPhy
 WimaxPhy (void)
virtual ~WimaxPhy (void)
void Attach (Ptr< WimaxChannel > channel)
virtual void DoDispose (void)
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.
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.
void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency)
 configure the physical layer in duplex mode
void SetFrameDuration (Time frameDuration)
 Set the frame duration.
void SetFrequency (uint32_t frequency)
 set the frequency on which the device should lock
virtual void SetMobility (Ptr< Object > mobility)
 set the mobility model of the device
void SetNrCarriers (uint8_t nrCarriers)
 Set the number of carriers in the physical frame.
void SetPhyParameters (void)
 computes the Physical parameters and store them
void SetPsDuration (Time psDuration)
 set the physical slot duration in seconds
void SetPsPerFrame (uint16_t psPerFrame)
 set the number of physical slot per frame
void SetPsPerSymbol (uint16_t psPerSymbol)
 set the number of physical slots per symbol
void SetReceiveCallback (Callback< void, Ptr< const PacketBurst > > callback)
 set the callback function to call when a burst is received
void SetScanningCallback (void) const
 calls the scanning call back function
void SetSimplex (uint64_t frequency)
 configure the physical layer in simplex mode
void SetState (PhyState state)
 set the state of the device
void SetSymbolDuration (Time symbolDuration)
 set the OFMD symbol duration in second
void SetSymbolsPerFrame (uint32_t symbolsPerFrame)
 set the number of symbols per frame
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
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~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 Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~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)
 This method returns the TypeId associated to ns3::SimpleOfdmWimaxPhy.

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)
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
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
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.

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoStart (void)
virtual void NotifyNewAggregate (void)

Detailed Description

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 170 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 176 of file simple-ofdm-wimax-phy.cc.

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

Referenced by ns3::WimaxHelper::CreatePhy(), and ns3::WimaxHelper::CreatePhyWithoutChannel().

+ Here is the call graph for this function:

+ Here is the caller 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 1095 of file simple-ofdm-wimax-phy.cc.

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

Referenced by ns3::SimpleOfdmWimaxChannel::AssignStreams().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References ns3::PacketBurst::AddPacket().

+ Here is the call graph for this function:

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

Definition at line 470 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 562 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 234 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxChannel::Attach(), and ns3::WimaxPhy::GetChannel().

+ Here is the call graph for this function:

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

Definition at line 1007 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
private

Definition at line 956 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
private

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

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

+ Here is the call graph for this function:

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

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

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

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
private

Definition at line 811 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
private

Definition at line 963 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
private

Definition at line 999 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
private

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

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

+ Here is the call graph for this function:

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

Definition at line 804 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 1014 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 949 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 462 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 428 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(), ns3::Seconds(), 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 331 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 312 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 189 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 695 of file simple-ofdm-wimax-phy.cc.

References DoGetDataRate(), GetFecBlockSize(), and ns3::Seconds().

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 212 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 906 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 250 of file simple-ofdm-wimax-phy.cc.

References ns3::WimaxPhy::simpleOfdmWimaxPhy.

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

Definition at line 1039 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 1045 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 1033 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 201 of file simple-ofdm-wimax-phy.cc.

References m_txPower.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

TypeId ns3::SimpleOfdmWimaxPhy::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::SimpleOfdmWimaxPhy.

This object is accessible through the following paths with Config::Set and Config::Connect:

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

Attributes defined for this type:

  • 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
  • FrameDuration: The frame duration in seconds.
    • Set with class: TimeValue
    • Underlying type: Time
    • 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 defined for this type:

  • 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

Reimplemented from ns3::WimaxPhy.

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

References DoGetGValue(), DoGetNfft(), DoSetGValue(), DoSetNfft(), GetNoiseFigure(), GetRxGain(), GetTraceFilePath(), GetTxGain(), GetTxPower(), m_phyRxBeginTrace, m_phyRxDropTrace, m_phyRxEndTrace, m_phyTxBeginTrace, m_phyTxDropTrace, m_phyTxEndTrace, m_traceRx, m_traceTx, ns3::MakeTraceSourceAccessor(), SetNoiseFigure(), ns3::TypeId::SetParent(), SetRxGain(), SetTraceFilePath(), SetTxGain(), and SetTxPower().

+ Here is the call 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 1077 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 1089 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 1083 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 1059 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 1071 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 1065 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 584 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 256 of file simple-ofdm-wimax-phy.cc.

References ns3::PacketBurst::GetSize(), 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 240 of file simple-ofdm-wimax-phy.cc.

References ns3::OfdmSendParams::GetBurst(), ns3::OfdmSendParams::GetDirection(), ns3::OfdmSendParams::GetModulationType(), 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 195 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 794 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 217 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 1027 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 182 of file simple-ofdm-wimax-phy.cc.

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

Referenced by ns3::WimaxHelper::CreatePhy(), and ns3::WimaxHelper::CreatePhyWithoutChannel().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 1051 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 1021 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 206 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: