A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::SimpleOfdmWimaxPhy Class Reference

SimpleOfdmWimaxPhy class. More...

#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
}
 Frame duration code enumeration. More...
 
- 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
}
 ModulationType enumeration. More...
 
enum  PhyState { PHY_STATE_IDLE , PHY_STATE_SCANNING , PHY_STATE_TX , PHY_STATE_RX }
 PhyState enumeration. More...
 
enum  PhyType { SimpleWimaxPhy , simpleOfdmWimaxPhy }
 PhyType enumeration. More...
 

Public Member Functions

 SimpleOfdmWimaxPhy ()
 
 SimpleOfdmWimaxPhy (char *tracesPath)
 Constructor.
 
 ~SimpleOfdmWimaxPhy () override
 
void ActivateLoss (bool loss)
 if called with true it will enable the loss model
 
int64_t AssignStreams (int64_t stream) override
 Assign a fixed random variable stream number to the random variables used by this model.
 
void DoAttach (Ptr< WimaxChannel > channel) override
 Attach the physical layer to a channel.
 
uint32_t GetBandwidth () const
 
double GetNoiseFigure () const
 
WimaxPhy::PhyType GetPhyType () const override
 returns the type this physical layer
 
double GetTxPower () const
 
void NotifyRxBegin (Ptr< PacketBurst > burst)
 Public method used to fire a PhyRxBegin trace.
 
void NotifyRxDrop (Ptr< PacketBurst > burst)
 Public method used to fire a PhyRxDrop trace.
 
void NotifyRxEnd (Ptr< PacketBurst > burst)
 Public method used to fire a PhyRxEnd trace.
 
void NotifyTxBegin (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxBegin trace.
 
void NotifyTxDrop (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxDrop trace.
 
void NotifyTxEnd (Ptr< PacketBurst > burst)
 Public method used to fire a PhyTxEnd trace.
 
void Send (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType, uint8_t direction)
 Sends a burst on the channel.
 
void Send (SendParams *params) override
 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 ()
 
 ~WimaxPhy () override
 
virtual int64_t AssignStreams (int64_t stream)=0
 Assign a fixed random variable stream number to the random variables used by this model.
 
void Attach (Ptr< WimaxChannel > channel)
 Attach the physical layer to a channel.
 
void DoDispose () override
 Destructor implementation.
 
Ptr< WimaxChannelGetChannel () const
 
uint32_t GetChannelBandwidth () const
 Get the channel bandwidth.
 
EventId GetChnlSrchTimeoutEvent () const
 Get channel search timeout event.
 
uint32_t GetDataRate (ModulationType modulationType) const
 Get the data rate corresponding to a modulation type.
 
Ptr< NetDeviceGetDevice () const
 
Time GetFrameDuration () const
 Get the frame duration.
 
Time GetFrameDuration (uint8_t frameDurationCode) const
 Get the frame duration corresponding to a given code.
 
uint8_t GetFrameDurationCode () const
 Get the frame duration code.
 
Time GetFrameDurationSec () const
 Get the frame duration This method is redundant with GetFrameDuration ()
 
uint32_t GetFrequency () const
 Get the frequency on which the device is locked.
 
double GetGValue () const
 Get the guard interval factor (the ratio TG/Td)
 
uint16_t GetNfft () const
 Get the size of the FFT.
 
uint64_t GetNrBytes (uint32_t symbols, ModulationType modulationType) const
 Get the maximum number of bytes that could be carried by symbols symbols using the modulation modulationType.
 
uint8_t GetNrCarriers () const
 Get the number of carriers in the physical frame.
 
uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const
 Get the number of symbols needed to transmit size bytes using the modulation modulationType.
 
virtual PhyType GetPhyType () const =0
 Get the type of the physical layer.
 
Time GetPsDuration () const
 Get the physical slot duration.
 
uint16_t GetPsPerFrame () const
 Get the number of physical slots per frame.
 
uint16_t GetPsPerSymbol () const
 Get the number of physical slots per symbol.
 
Callback< void, Ptr< const PacketBurst > > GetReceiveCallback () const
 
uint16_t GetRtg () const
 Get the receive/transmit transition gap.
 
uint64_t GetRxFrequency () const
 Get the reception frequency.
 
double GetSamplingFactor () const
 Get the sampling factor.
 
double GetSamplingFrequency () const
 Get the sampling frequency.
 
uint64_t GetScanningFrequency () const
 Get the scanning frequency.
 
PhyState GetState () const
 Get the state of the device.
 
Time GetSymbolDuration () const
 Get the OFDM symbol duration.
 
uint32_t GetSymbolsPerFrame () const
 Get the number of symbols per frame.
 
Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const
 Get transmission time needed to send bytes at a given modulation.
 
uint16_t GetTtg () const
 Get the transmit/receive transition gap.
 
uint64_t GetTxFrequency () const
 Get the transmission frequency.
 
bool IsDuplex () const
 Check if configured in duplex mode.
 
virtual void Send (SendParams *params)=0
 send a packet on the channel
 
void SetChannelBandwidth (uint32_t channelBandwidth)
 Set the channel bandwidth.
 
void SetDataRates ()
 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
 
void SetNrCarriers (uint8_t nrCarriers)
 Set the number of carriers in the physical frame.
 
void SetPhyParameters ()
 computes the Physical parameters and store them
 
void SetPsDuration (Time psDuration)
 set the physical slot duration
 
void SetPsPerFrame (uint16_t psPerFrame)
 set the number of physical slots 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 () 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 OFDM symbol duration
 
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 a frequency for maximum timeout seconds and call the callback if the frequency can be used
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::WimaxPhy
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Member Functions

uint32_t CalculateDataRate (WimaxPhy::ModulationType modulationType) const
 Calculate data rate.
 
Ptr< PacketBurstConvertBitsToBurst (Bvec buffer)
 Convert bits to burst.
 
Bvec ConvertBurstToBits (Ptr< const PacketBurst > burst)
 Convert burst to bits.
 
void CreateFecBlocks (const Bvec &buffer, WimaxPhy::ModulationType modulationType)
 Create FEC blocks.
 
void DoDispose () override
 Destructor implementation.
 
uint32_t DoGetDataRate (WimaxPhy::ModulationType modulationType) const override
 Get data rate.
 
Time DoGetFrameDuration (uint8_t frameDurationCode) const override
 Get frame duration.
 
uint8_t DoGetFrameDurationCode () const override
 Get frame duration code.
 
double DoGetGValue () const override
 Get G value.
 
uint16_t DoGetNfft () const override
 Get NFFT.
 
uint64_t DoGetNrBytes (uint32_t symbols, WimaxPhy::ModulationType modulationType) const override
 Get number of bytes.
 
uint64_t DoGetNrSymbols (uint32_t size, WimaxPhy::ModulationType modulationType) const override
 Get number of symbols.
 
uint16_t DoGetRtg () const override
 Get RTG.
 
double DoGetSamplingFactor () const override
 Get sampling factor.
 
double DoGetSamplingFrequency () const override
 Get sampling frequency.
 
Time DoGetTransmissionTime (uint32_t size, WimaxPhy::ModulationType modulationType) const override
 Get transmission time.
 
uint16_t DoGetTtg () const override
 Get TTG.
 
void DoSetDataRates () override
 Set data rates.
 
void DoSetGValue (double g)
 Set G value.
 
void DoSetNfft (uint16_t nfft)
 Set NFFT.
 
void DoSetPhyParameters () override
 Set Phy parameters.
 
void EndReceive (Ptr< const PacketBurst > burst)
 End receive.
 
void EndReceiveFecBlock (uint32_t burstSize, WimaxPhy::ModulationType modulationType, uint8_t direction, bool drop, Ptr< PacketBurst > burst)
 End receive FEC block.
 
void EndSend ()
 End send.
 
void EndSendFecBlock (WimaxPhy::ModulationType modulationType, uint8_t direction)
 End send FEC block.
 
Time GetBlockTransmissionTime (WimaxPhy::ModulationType modulationType) const
 Get block transmission time.
 
uint32_t GetCodedFecBlockSize (WimaxPhy::ModulationType modulationType) const
 Get coded FEC block size.
 
uint32_t GetFecBlockSize (WimaxPhy::ModulationType type) const
 Get FEC block size.
 
void GetModulationFecParams (WimaxPhy::ModulationType modulationType, uint8_t &bitsPerSymbol, double &fecCode) const
 Get moduleation FEC parameters.
 
uint16_t GetNrBlocks (uint32_t burstSize, WimaxPhy::ModulationType modulationType) const
 Get number of blocks.
 
double GetRxGain () const
 Get receive gain.
 
std::string GetTraceFilePath () const
 Get trace file path.
 
double GetTxGain () const
 Get transmit gain.
 
void InitSimpleOfdmWimaxPhy ()
 Initialize simple OFDM WIMAX Phy.
 
Bvec RecreateBuffer ()
 Recreate buffer.
 
void SetBlockParameters (uint32_t burstSize, WimaxPhy::ModulationType modulationType)
 Set block parameters.
 
void SetRxGain (double rxgain)
 Set receive gsain.
 
void SetTraceFilePath (std::string path)
 Set trace file path.
 
void SetTxGain (double txgain)
 Set transmit gain.
 
void StartSendDummyFecBlock (bool isFirstBlock, WimaxPhy::ModulationType modulationType, uint8_t direction)
 Start end dummy FEC block.
 

Private Attributes

double m_bandWidth
 bandwidth
 
uint16_t m_blockSize
 block size
 
Time m_blockTime
 block time
 
Ptr< PacketBurstm_currentBurst
 current burst
 
uint32_t m_currentBurstSize
 current burst size
 
uint32_t m_dataRateBpsk12
 data rate
 
uint32_t m_dataRateQam16_12
 data rate
 
uint32_t m_dataRateQam16_34
 data rate
 
uint32_t m_dataRateQam64_23
 data rate
 
uint32_t m_dataRateQam64_34
 data rate
 
uint32_t m_dataRateQpsk12
 data rate
 
uint32_t m_dataRateQpsk34
 data rate
 
std::list< Bvec > * m_fecBlocks
 the FEC blocks
 
uint16_t m_fecBlockSize
 in bits, size of FEC block transmitted after PHY operations
 
double m_g
 G value.
 
uint16_t m_nbErroneousBlock
 erroneous blocks
 
uint16_t m_nfft
 NFFT.
 
double m_noiseFigure
 noise figure
 
uint16_t m_nrBlocks
 number of blocks
 
uint32_t m_nrFecBlocksSent
 counting the number of FEC blocks sent (within a burst)
 
uint16_t m_nrReceivedFecBlocks
 number received FEC blocks
 
uint16_t m_nrRemainingBlocksToSend
 number of remaining blocks to send
 
uint32_t m_paddingBits
 padding bits
 
TracedCallback< Ptr< PacketBurst > > m_phyRxBeginTrace
 The trace source fired when a packet begins the reception process from the medium.
 
TracedCallback< Ptr< PacketBurst > > m_phyRxDropTrace
 The trace source fired when the phy layer drops a packet it has received.
 
TracedCallback< Ptr< PacketBurst > > m_phyRxEndTrace
 The trace source fired when a packet ends the reception process from the medium.
 
TracedCallback< Ptr< PacketBurst > > m_phyTxBeginTrace
 The trace source fired when a packet begins the transmission process on the medium.
 
TracedCallback< Ptr< PacketBurst > > m_phyTxDropTrace
 The trace source fired when the phy layer drops a packet as it tries to transmit it.
 
TracedCallback< Ptr< PacketBurst > > m_phyTxEndTrace
 The trace source fired when a packet ends the transmission process on the medium.
 
std::list< Bvec > * m_receivedFecBlocks
 a list of received FEC blocks until they are combined to recreate the full burst buffer
 
double m_rxGain
 receive gain
 
SNRToBlockErrorRateManagerm_snrToBlockErrorRateManager
 SNR to block error rate manager.
 
TracedCallback< Ptr< const PacketBurst > > m_traceRx
 trace receive callback
 
TracedCallback< Ptr< const PacketBurst > > m_traceTx
 trace transmit callback
 
double m_txGain
 transmit gain
 
double m_txPower
 transmit power
 
Ptr< UniformRandomVariablem_URNG
 Provides uniform random variables.
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

SimpleOfdmWimaxPhy class.

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

  • 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: constructwriteread
  • Nfft: FFT size
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 256:1024
    • Initial value: 256
    • Flags: constructwriteread
  • 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: constructwriteread
  • RxGain: Reception gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
  • TraceFilePath: Path to the directory containing SNR to block error rate files
    • Set with class: ns3::StringValue
    • Underlying type: std::string
    • Initial value: ""
    • Flags: constructwriteread
  • TxGain: Transmission gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
  • TxPower: Transmission power (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 30
    • Flags: constructwriteread

Attributes defined in parent class ns3::WimaxPhy

  • Bandwidth: The channel bandwidth in Hz.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 5000000:30000000
    • Initial value: 10000000
    • Flags: constructwriteread
  • Channel: Wimax channel
  • FrameDuration: The frame duration in seconds.
    • Set with class: ns3::TimeValue
    • Underlying type: Time +9.22337e+18ns:+9.22337e+18ns
    • Initial value: +1e+07ns
    • Flags: constructwriteread
  • Frequency: The central frequency in KHz.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 1000000:11000000
    • Initial value: 5000000
    • Flags: constructwriteread

TraceSources

Size of this type is 480 bytes (on a 64-bit architecture).

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

Member Enumeration Documentation

◆ FrameDurationCode

Frame duration code enumeration.

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 54 of file simple-ofdm-wimax-phy.h.

Constructor & Destructor Documentation

◆ SimpleOfdmWimaxPhy() [1/2]

ns3::SimpleOfdmWimaxPhy::SimpleOfdmWimaxPhy ( )

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

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

+ Here is the call graph for this function:

◆ SimpleOfdmWimaxPhy() [2/2]

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

Constructor.

Parameters
tracesPathtrace path

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

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

+ Here is the call graph for this function:

◆ ~SimpleOfdmWimaxPhy()

ns3::SimpleOfdmWimaxPhy::~SimpleOfdmWimaxPhy ( )
override

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

Member Function Documentation

◆ ActivateLoss()

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

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

+ Here is the call graph for this function:

◆ AssignStreams()

int64_t ns3::SimpleOfdmWimaxPhy::AssignStreams ( int64_t  stream)
overridevirtual

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 1098 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:

◆ CalculateDataRate()

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

Calculate data rate.

Parameters
modulationTypethe modulation type
Returns
the data rate

Definition at line 673 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:

◆ ConvertBitsToBurst()

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

Convert bits to burst.

Parameters
bufferthe BVEC
Returns
the packet burst

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

References packetSize.

◆ ConvertBurstToBits()

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

Convert burst to bits.

Parameters
burstthe packet burst
Returns
the BVEC

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

◆ CreateFecBlocks()

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

Create FEC blocks.

Parameters
bufferthe BVEC
modulationTypethe modulation type

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

References m_blockSize, m_fecBlocks, m_nrBlocks, and m_paddingBits.

◆ DoAttach()

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

Attach the physical layer to a channel.

Parameters
channelthe channel to which the physical layer will be attached

Implements ns3::WimaxPhy.

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

References ns3::WimaxPhy::GetChannel().

+ Here is the call graph for this function:

◆ DoDispose()

void ns3::SimpleOfdmWimaxPhy::DoDispose ( )
overrideprivatevirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 258 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:

◆ DoGetDataRate()

uint32_t ns3::SimpleOfdmWimaxPhy::DoGetDataRate ( WimaxPhy::ModulationType  modulationType) const
overrideprivatevirtual

Get data rate.

Parameters
modulationTypethe modulation type
Returns
the data rate

Implements ns3::WimaxPhy.

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

References m_dataRateBpsk12, m_dataRateQam16_12, m_dataRateQam16_34, m_dataRateQam64_23, m_dataRateQam64_34, m_dataRateQpsk12, m_dataRateQpsk34, ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_34, ns3::WimaxPhy::MODULATION_TYPE_QAM64_23, ns3::WimaxPhy::MODULATION_TYPE_QAM64_34, ns3::WimaxPhy::MODULATION_TYPE_QPSK_12, ns3::WimaxPhy::MODULATION_TYPE_QPSK_34, and NS_FATAL_ERROR.

Referenced by DoGetNrBytes(), DoGetNrSymbols(), and GetBlockTransmissionTime().

+ Here is the caller graph for this function:

◆ DoGetFrameDuration()

Time ns3::SimpleOfdmWimaxPhy::DoGetFrameDuration ( uint8_t  frameDurationCode) const
overrideprivatevirtual

Get frame duration.

Parameters
frameDurationCodethe frame duration code
Returns
the frame duration

Implements ns3::WimaxPhy.

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

References FRAME_DURATION_10_MS, FRAME_DURATION_12_POINT_5_MS, FRAME_DURATION_20_MS, FRAME_DURATION_2_POINT_5_MS, FRAME_DURATION_4_MS, FRAME_DURATION_5_MS, FRAME_DURATION_8_MS, NS_FATAL_ERROR, and ns3::Seconds().

+ Here is the call graph for this function:

◆ DoGetFrameDurationCode()

uint8_t ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode ( ) const
overrideprivatevirtual

Get frame duration code.

Returns
the frame duration code

Implements ns3::WimaxPhy.

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

References FRAME_DURATION_10_MS, FRAME_DURATION_12_POINT_5_MS, FRAME_DURATION_20_MS, FRAME_DURATION_2_POINT_5_MS, FRAME_DURATION_4_MS, FRAME_DURATION_5_MS, FRAME_DURATION_8_MS, ns3::WimaxPhy::GetFrameDuration(), ns3::Time::GetSeconds(), and NS_FATAL_ERROR.

+ Here is the call graph for this function:

◆ DoGetGValue()

double ns3::SimpleOfdmWimaxPhy::DoGetGValue ( ) const
overrideprivatevirtual

Get G value.

Returns
the G value

Implements ns3::WimaxPhy.

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

References m_g.

Referenced by DoSetPhyParameters(), and GetTypeId().

+ Here is the caller graph for this function:

◆ DoGetNfft()

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetNfft ( ) const
overrideprivatevirtual

Get NFFT.

Returns
the NFFT

Implements ns3::WimaxPhy.

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

References m_nfft.

Referenced by DoSetPhyParameters(), and GetTypeId().

+ Here is the caller graph for this function:

◆ DoGetNrBytes()

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

Get number of bytes.

Parameters
symbolsthe symbols
modulationTypethe modulation type
Returns
the number of bytes

Implements ns3::WimaxPhy.

Definition at line 736 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:

◆ DoGetNrSymbols()

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

Get number of symbols.

Parameters
sizethe size
modulationTypethe modulation type
Returns
the number of symbols

Implements ns3::WimaxPhy.

Definition at line 727 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:

◆ DoGetRtg()

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetRtg ( ) const
overrideprivatevirtual

Get RTG.

Returns
the RTG

Implements ns3::WimaxPhy.

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

References ns3::WimaxPhy::GetPsPerSymbol().

+ Here is the call graph for this function:

◆ DoGetSamplingFactor()

double ns3::SimpleOfdmWimaxPhy::DoGetSamplingFactor ( ) const
overrideprivatevirtual

Get sampling factor.

Returns
the sampling factor

Implements ns3::WimaxPhy.

Definition at line 969 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:

◆ DoGetSamplingFrequency()

double ns3::SimpleOfdmWimaxPhy::DoGetSamplingFrequency ( ) const
overrideprivatevirtual

Get sampling frequency.

Returns
the sampling frequency

Implements ns3::WimaxPhy.

Definition at line 1005 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:

◆ DoGetTransmissionTime()

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

Get transmission time.

Parameters
sizethe size
modulationTypethe modulation type
Returns
the transmission time

Implements ns3::WimaxPhy.

Definition at line 716 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:

◆ DoGetTtg()

uint16_t ns3::SimpleOfdmWimaxPhy::DoGetTtg ( ) const
overrideprivatevirtual

Get TTG.

Returns
the TTG

Implements ns3::WimaxPhy.

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

References ns3::WimaxPhy::GetPsPerSymbol().

+ Here is the call graph for this function:

◆ DoSetDataRates()

void ns3::SimpleOfdmWimaxPhy::DoSetDataRates ( )
overrideprivatevirtual

◆ DoSetGValue()

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

Set G value.

Parameters
gthe G value

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

References m_g.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ DoSetNfft()

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

Set NFFT.

Parameters
nfftthe NFFT

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

References m_nfft.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ DoSetPhyParameters()

void ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters ( )
overrideprivatevirtual

Set Phy parameters.

Implements ns3::WimaxPhy.

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

References DoGetGValue(), DoGetNfft(), DoGetSamplingFrequency(), ns3::WimaxPhy::GetFrameDuration(), ns3::Time::GetSeconds(), ns3::Seconds(), ns3::WimaxPhy::SetPsDuration(), ns3::WimaxPhy::SetPsPerFrame(), ns3::WimaxPhy::SetPsPerSymbol(), ns3::WimaxPhy::SetSymbolDuration(), and ns3::WimaxPhy::SetSymbolsPerFrame().

+ Here is the call graph for this function:

◆ EndReceive()

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

End receive.

Parameters
burst

Definition at line 490 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:

◆ EndReceiveFecBlock()

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

End receive FEC block.

Parameters
burstSizethe burst size
modulationTypethe modulation type
directionthe direction
dropwhether to drop
burstthe burst

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

References EndReceive(), m_blockSize, m_nbErroneousBlock, m_nrReceivedFecBlocks, 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:

◆ EndSend()

void ns3::SimpleOfdmWimaxPhy::EndSend ( )
private

End send.

Definition at line 362 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:

◆ EndSendFecBlock()

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

End send FEC block.

Parameters
modulationTypethe modulation type
directionthe direction

Definition at line 344 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:

◆ GetBandwidth()

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

Definition at line 222 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:

◆ GetBlockTransmissionTime()

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

Get block transmission time.

Parameters
modulationTypethe modulation type
Returns
the block transmission time

Definition at line 710 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:

◆ GetCodedFecBlockSize()

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

◆ GetFecBlockSize()

uint32_t ns3::SimpleOfdmWimaxPhy::GetFecBlockSize ( WimaxPhy::ModulationType  type) const
private

Get FEC block size.

Parameters
typethe modulation type
Returns
the FEC block size

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

References ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_34, ns3::WimaxPhy::MODULATION_TYPE_QAM64_23, ns3::WimaxPhy::MODULATION_TYPE_QAM64_34, ns3::WimaxPhy::MODULATION_TYPE_QPSK_12, ns3::WimaxPhy::MODULATION_TYPE_QPSK_34, and NS_FATAL_ERROR.

Referenced by DoGetNrSymbols(), GetBlockTransmissionTime(), GetNrBlocks(), and SetBlockParameters().

+ Here is the caller graph for this function:

◆ GetModulationFecParams()

void ns3::SimpleOfdmWimaxPhy::GetModulationFecParams ( WimaxPhy::ModulationType  modulationType,
uint8_t &  bitsPerSymbol,
double fecCode 
) const
private

Get moduleation FEC parameters.

Parameters
modulationTypethe modulation type
bitsPerSymbolthe number of bits per symbol
fecCodethe FEC code

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

References ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_12, ns3::WimaxPhy::MODULATION_TYPE_QAM16_34, ns3::WimaxPhy::MODULATION_TYPE_QAM64_23, ns3::WimaxPhy::MODULATION_TYPE_QAM64_34, ns3::WimaxPhy::MODULATION_TYPE_QPSK_12, and ns3::WimaxPhy::MODULATION_TYPE_QPSK_34.

Referenced by CalculateDataRate().

+ Here is the caller graph for this function:

◆ GetNoiseFigure()

double ns3::SimpleOfdmWimaxPhy::GetNoiseFigure ( ) const
Returns
the noise figure

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

References m_noiseFigure.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetNrBlocks()

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

Get number of blocks.

Parameters
burstSizethe burst size
modulationTypethe modulation type
Returns
the number of blocks

Definition at line 911 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:

◆ GetPhyType()

WimaxPhy::PhyType ns3::SimpleOfdmWimaxPhy::GetPhyType ( ) const
overridevirtual

returns the type this physical layer

Returns
always WimaxPhy::simpleOfdmWimaxPhy;

Implements ns3::WimaxPhy.

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

References ns3::WimaxPhy::simpleOfdmWimaxPhy.

◆ GetRxGain()

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

Get receive gain.

Returns
the receive gain

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:

◆ GetTraceFilePath()

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

Get trace file path.

Returns
the trace file path name

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:

◆ GetTxGain()

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

Get transmit gain.

Returns
the transmit gain

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:

◆ GetTxPower()

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

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

References m_txPower.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ InitSimpleOfdmWimaxPhy()

void ns3::SimpleOfdmWimaxPhy::InitSimpleOfdmWimaxPhy ( )
private

Initialize simple OFDM WIMAX Phy.

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

References m_blockSize, m_currentBurstSize, m_dataRateBpsk12, m_dataRateQam16_12, m_dataRateQam16_34, m_dataRateQam64_23, m_dataRateQam64_34, m_dataRateQpsk12, m_dataRateQpsk34, m_fecBlocks, m_fecBlockSize, m_g, m_nbErroneousBlock, m_nfft, m_noiseFigure, m_nrBlocks, m_nrFecBlocksSent, m_nrReceivedFecBlocks, m_paddingBits, m_receivedFecBlocks, m_rxGain, m_snrToBlockErrorRateManager, m_txGain, m_txPower, SetBandwidth(), and ns3::WimaxPhy::SetNrCarriers().

Referenced by SimpleOfdmWimaxPhy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyRxBegin()

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

Public method used to fire a PhyRxBegin trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyRxBeginTrace.

Referenced by StartReceive().

+ Here is the caller graph for this function:

◆ NotifyRxDrop()

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

Public method used to fire a PhyRxDrop trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyRxDropTrace.

Referenced by EndReceiveFecBlock().

+ Here is the caller graph for this function:

◆ NotifyRxEnd()

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

Public method used to fire a PhyRxEnd trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyRxEndTrace.

Referenced by EndReceiveFecBlock().

+ Here is the caller graph for this function:

◆ NotifyTxBegin()

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

Public method used to fire a PhyTxBegin trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyTxBeginTrace.

Referenced by Send().

+ Here is the caller graph for this function:

◆ NotifyTxDrop()

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

Public method used to fire a PhyTxDrop trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyTxDropTrace.

◆ NotifyTxEnd()

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

Public method used to fire a PhyTxEnd trace.

Implemented for encapsulation purposes.

Parameters
burstthe packet burst

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

References m_phyTxEndTrace.

Referenced by EndSendFecBlock().

+ Here is the caller graph for this function:

◆ RecreateBuffer()

Bvec ns3::SimpleOfdmWimaxPhy::RecreateBuffer ( )
private

Recreate buffer.

Returns
BVEC

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

References m_blockSize, m_nrBlocks, and m_receivedFecBlocks.

◆ Send() [1/2]

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 291 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:

◆ Send() [2/2]

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

Sends a burst on the channel.

Parameters
paramsparameters
See also
SendParams

Implements ns3::WimaxPhy.

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

References NS_ASSERT, and Send().

+ Here is the call graph for this function:

◆ SetBandwidth()

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

Set the bandwidth.

Parameters
BWthe bandwidth

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

References BW, and ns3::WimaxPhy::SetChannelBandwidth().

Referenced by InitSimpleOfdmWimaxPhy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetBlockParameters()

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

Set block parameters.

Parameters
burstSizethe burst size
modulationTypethe modulation type

Definition at line 813 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:

◆ SetNoiseFigure()

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

set the noise figure of the device

Parameters
nfthe noise figure

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

References m_noiseFigure.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetReceiveCallback()

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

set the callback function to call when a burst is received

Parameters
callbackthe receive callback function

◆ SetRxGain()

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

Set receive gsain.

Parameters
rxgainthe receive gain

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:

◆ SetSNRToBlockErrorRateTracesPath()

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 215 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:

◆ SetTraceFilePath()

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

Set trace file path.

Parameters
paththe trace file path

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:

◆ SetTxGain()

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

Set transmit gain.

Parameters
txgainthe transmit gain

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:

◆ SetTxPower()

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

set the transmission power

Parameters
txPowerthe transmission power

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

References m_txPower.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ StartReceive()

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

Parameters
burstSizethe burst size
isFirstBlocktrue if this block is the first one, false otherwise
frequencythe frequency in which the fec block is being received
modulationTypethe modulation used to transmit this fec Block
directionset to uplink and downlink
rxPowerthe received power.
burstthe burst to be sent

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

References ns3::Simulator::Cancel(), EndReceiveFecBlock(), GetBandwidth(), GetBlockTransmissionTime(), ns3::WimaxPhy::GetChnlSrchTimeoutEvent(), 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_blockTime, m_noiseFigure, m_nrReceivedFecBlocks, m_receivedFecBlocks, m_snrToBlockErrorRateManager, m_URNG, NotifyRxBegin(), NS_LOG_INFO, ns3::WimaxPhy::PHY_STATE_IDLE, ns3::WimaxPhy::PHY_STATE_RX, ns3::WimaxPhy::PHY_STATE_SCANNING, ns3::WimaxPhy::PHY_STATE_TX, ns3::Simulator::Schedule(), SetBlockParameters(), ns3::WimaxPhy::SetScanningCallback(), ns3::WimaxPhy::SetSimplex(), and ns3::WimaxPhy::SetState().

+ Here is the call graph for this function:

◆ StartSendDummyFecBlock()

void ns3::SimpleOfdmWimaxPhy::StartSendDummyFecBlock ( bool  isFirstBlock,
WimaxPhy::ModulationType  modulationType,
uint8_t  direction 
)
private

Start end dummy FEC block.

Parameters
isFirstBlockis the first block?
modulationTypethe modulation type
directionthe direction

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

References EndSendFecBlock(), GetBlockTransmissionTime(), ns3::WimaxPhy::GetChannel(), ns3::WimaxPhy::GetTxFrequency(), m_blockTime, m_currentBurst, m_currentBurstSize, m_nrRemainingBlocksToSend, m_txPower, NS_ASSERT, ns3::PeekPointer(), ns3::WimaxPhy::PHY_STATE_TX, ns3::Simulator::Schedule(), and ns3::WimaxPhy::SetState().

Referenced by EndSendFecBlock(), and Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bandWidth

double ns3::SimpleOfdmWimaxPhy::m_bandWidth
private

bandwidth

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

◆ m_blockSize

uint16_t ns3::SimpleOfdmWimaxPhy::m_blockSize
private

◆ m_blockTime

Time ns3::SimpleOfdmWimaxPhy::m_blockTime
private

block time

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

Referenced by StartReceive(), and StartSendDummyFecBlock().

◆ m_currentBurst

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

current burst

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

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

◆ m_currentBurstSize

uint32_t ns3::SimpleOfdmWimaxPhy::m_currentBurstSize
private

current burst size

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

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

◆ m_dataRateBpsk12

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateBpsk12
private

data rate

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

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

◆ m_dataRateQam16_12

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam16_12
private

data rate

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

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

◆ m_dataRateQam16_34

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam16_34
private

data rate

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

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

◆ m_dataRateQam64_23

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam64_23
private

data rate

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

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

◆ m_dataRateQam64_34

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQam64_34
private

data rate

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

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

◆ m_dataRateQpsk12

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQpsk12
private

data rate

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

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

◆ m_dataRateQpsk34

uint32_t ns3::SimpleOfdmWimaxPhy::m_dataRateQpsk34
private

data rate

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

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

◆ m_fecBlocks

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

the FEC blocks

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

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

◆ m_fecBlockSize

uint16_t ns3::SimpleOfdmWimaxPhy::m_fecBlockSize
private

in bits, size of FEC block transmitted after PHY operations

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

Referenced by InitSimpleOfdmWimaxPhy().

◆ m_g

double ns3::SimpleOfdmWimaxPhy::m_g
private

G value.

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

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

◆ m_nbErroneousBlock

uint16_t ns3::SimpleOfdmWimaxPhy::m_nbErroneousBlock
private

erroneous blocks

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

Referenced by EndReceiveFecBlock(), and InitSimpleOfdmWimaxPhy().

◆ m_nfft

uint16_t ns3::SimpleOfdmWimaxPhy::m_nfft
private

NFFT.

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

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

◆ m_noiseFigure

double ns3::SimpleOfdmWimaxPhy::m_noiseFigure
private

noise figure

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

Referenced by GetNoiseFigure(), InitSimpleOfdmWimaxPhy(), SetNoiseFigure(), and StartReceive().

◆ m_nrBlocks

uint16_t ns3::SimpleOfdmWimaxPhy::m_nrBlocks
private

number of blocks

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

Referenced by CreateFecBlocks(), InitSimpleOfdmWimaxPhy(), RecreateBuffer(), and SetBlockParameters().

◆ m_nrFecBlocksSent

uint32_t ns3::SimpleOfdmWimaxPhy::m_nrFecBlocksSent
private

counting the number of FEC blocks sent (within a burst)

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

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

◆ m_nrReceivedFecBlocks

uint16_t ns3::SimpleOfdmWimaxPhy::m_nrReceivedFecBlocks
private

number received FEC blocks

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

Referenced by EndReceiveFecBlock(), InitSimpleOfdmWimaxPhy(), and StartReceive().

◆ m_nrRemainingBlocksToSend

uint16_t ns3::SimpleOfdmWimaxPhy::m_nrRemainingBlocksToSend
private

number of remaining blocks to send

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

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

◆ m_paddingBits

uint32_t ns3::SimpleOfdmWimaxPhy::m_paddingBits
private

◆ m_phyRxBeginTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyRxBegin().

◆ m_phyRxDropTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyRxDrop().

◆ m_phyRxEndTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyRxEnd().

◆ m_phyTxBeginTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyTxBegin().

◆ m_phyTxDropTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyTxDrop().

◆ m_phyTxEndTrace

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
Deprecated:
The non-const Ptr<PacketBurst> argument is deprecated and will be changed to Ptrc<PacketBurst> in a future release.

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

Referenced by GetTypeId(), and NotifyTxEnd().

◆ m_receivedFecBlocks

std::list<Bvec>* ns3::SimpleOfdmWimaxPhy::m_receivedFecBlocks
private

a list of received FEC blocks until they are combined to recreate the full burst buffer

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

Referenced by DoDispose(), InitSimpleOfdmWimaxPhy(), RecreateBuffer(), and StartReceive().

◆ m_rxGain

double ns3::SimpleOfdmWimaxPhy::m_rxGain
private

receive gain

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

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

◆ m_snrToBlockErrorRateManager

SNRToBlockErrorRateManager* ns3::SimpleOfdmWimaxPhy::m_snrToBlockErrorRateManager
private

◆ m_traceRx

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

trace receive callback

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

Referenced by EndReceive(), and GetTypeId().

◆ m_traceTx

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

trace transmit callback

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

Referenced by GetTypeId(), and Send().

◆ m_txGain

double ns3::SimpleOfdmWimaxPhy::m_txGain
private

transmit gain

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

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

◆ m_txPower

double ns3::SimpleOfdmWimaxPhy::m_txPower
private

transmit power

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

Referenced by GetTxPower(), InitSimpleOfdmWimaxPhy(), SetTxPower(), and StartSendDummyFecBlock().

◆ m_URNG

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

Provides uniform random variables.

URNG

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

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


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