A Discrete-Event Network Simulator
API
ns3::WimaxPhy Class Referenceabstract

WiMAX PHY entity. More...

#include "wimax-phy.h"

+ Inheritance diagram for ns3::WimaxPhy:
+ Collaboration diagram for ns3::WimaxPhy:

Public Types

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

 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. More...
 
void Attach (Ptr< WimaxChannel > channel)
 Attach the physical layer to a channel. More...
 
void DoDispose () override
 Destructor implementation. More...
 
Ptr< WimaxChannelGetChannel () const
 
uint32_t GetChannelBandwidth () const
 Get the channel bandwidth. More...
 
EventId GetChnlSrchTimeoutEvent () const
 Get channel search timeout event. More...
 
uint32_t GetDataRate (ModulationType modulationType) const
 Get the data rate corresponding to a modulation type. More...
 
Ptr< NetDeviceGetDevice () const
 
Time GetFrameDuration () const
 Get the frame duration. More...
 
Time GetFrameDuration (uint8_t frameDurationCode) const
 Get the frame duration corresponding to a given code. More...
 
uint8_t GetFrameDurationCode () const
 Get the frame duration code. More...
 
Time GetFrameDurationSec () const
 Get the frame duration This method is redundant with GetFrameDuration () More...
 
uint32_t GetFrequency () const
 Get the frequency on which the device is locked. More...
 
double GetGValue () const
 Get the guard interval factor (the ratio TG/Td) More...
 
uint16_t GetNfft () const
 Get the size of the FFT. More...
 
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. More...
 
uint8_t GetNrCarriers () const
 Get the number of carriers in the physical frame. More...
 
uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const
 Get the number of symbols needed to transmit size bytes using the modulation modulationType. More...
 
virtual PhyType GetPhyType () const =0
 Get the type of the physical layer. More...
 
Time GetPsDuration () const
 Get the physical slot duration. More...
 
uint16_t GetPsPerFrame () const
 Get the number of physical slots per frame. More...
 
uint16_t GetPsPerSymbol () const
 Get the number of physical slots per symbol. More...
 
Callback< void, Ptr< const PacketBurst > > GetReceiveCallback () const
 
uint16_t GetRtg () const
 Get the receive/transmit transition gap. More...
 
uint64_t GetRxFrequency () const
 Get the reception frequency. More...
 
double GetSamplingFactor () const
 Get the sampling factor. More...
 
double GetSamplingFrequency () const
 Get the sampling frequency. More...
 
uint64_t GetScanningFrequency () const
 Get the scanning frequency. More...
 
PhyState GetState () const
 Get the state of the device. More...
 
Time GetSymbolDuration () const
 Get the OFDM symbol duration. More...
 
uint32_t GetSymbolsPerFrame () const
 Get the number of symbols per frame. More...
 
Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const
 Get transmission time needed to send bytes at a given modulation. More...
 
uint16_t GetTtg () const
 Get the transmit/receive transition gap. More...
 
uint64_t GetTxFrequency () const
 Get the transmission frequency. More...
 
bool IsDuplex () const
 Check if configured in duplex mode. More...
 
virtual void Send (SendParams *params)=0
 send a packet on the channel More...
 
void SetChannelBandwidth (uint32_t channelBandwidth)
 Set the channel bandwidth. More...
 
void SetDataRates ()
 calculates the data rate of each modulation and save them for future use More...
 
void SetDevice (Ptr< WimaxNetDevice > device)
 Set the device in which this physical layer is installed. More...
 
void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency)
 configure the physical layer in duplex mode More...
 
void SetFrameDuration (Time frameDuration)
 Set the frame duration. More...
 
void SetFrequency (uint32_t frequency)
 set the frequency on which the device should lock More...
 
void SetNrCarriers (uint8_t nrCarriers)
 Set the number of carriers in the physical frame. More...
 
void SetPhyParameters ()
 computes the Physical parameters and store them More...
 
void SetPsDuration (Time psDuration)
 set the physical slot duration More...
 
void SetPsPerFrame (uint16_t psPerFrame)
 set the number of physical slots per frame More...
 
void SetPsPerSymbol (uint16_t psPerSymbol)
 set the number of physical slots per symbol More...
 
void SetReceiveCallback (Callback< void, Ptr< const PacketBurst >> callback)
 set the callback function to call when a burst is received More...
 
void SetScanningCallback () const
 calls the scanning call back function More...
 
void SetSimplex (uint64_t frequency)
 configure the physical layer in simplex mode More...
 
void SetState (PhyState state)
 set the state of the device More...
 
void SetSymbolDuration (Time symbolDuration)
 set the OFDM symbol duration More...
 
void SetSymbolsPerFrame (uint32_t symbolsPerFrame)
 set the number of symbols per frame More...
 
void StartScanning (uint64_t frequency, Time timeout, Callback< void, bool, uint64_t > callback)
 scan a frequency for maximum timeout seconds and call the callback if the frequency can be used More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
 ~Object () override
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose ()
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized () const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

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

Private Member Functions

virtual void DoAttach (Ptr< WimaxChannel > channel)=0
 Attach channel. More...
 
virtual uint32_t DoGetDataRate (ModulationType modulationType) const =0
 Get data rate. More...
 
virtual Time DoGetFrameDuration (uint8_t frameDurationCode) const =0
 Get frame duration. More...
 
virtual uint8_t DoGetFrameDurationCode () const =0
 Get frame duration code. More...
 
virtual double DoGetGValue () const =0
 Get G value. More...
 
virtual uint16_t DoGetNfft () const =0
 Get NFFT. More...
 
virtual uint64_t DoGetNrBytes (uint32_t symbols, ModulationType modulationType) const =0
 Get number of bytes. More...
 
virtual uint64_t DoGetNrSymbols (uint32_t size, ModulationType modulationType) const =0
 Get number of symbols. More...
 
virtual uint16_t DoGetRtg () const =0
 Get RTG. More...
 
virtual double DoGetSamplingFactor () const =0
 Get sampling factor. More...
 
virtual double DoGetSamplingFrequency () const =0
 Get sampling frequency. More...
 
virtual Time DoGetTransmissionTime (uint32_t size, ModulationType modulationType) const =0
 Get transmission time. More...
 
virtual uint16_t DoGetTtg () const =0
 Get TTG. More...
 
virtual void DoSetDataRates ()=0
 Set data rates. More...
 
virtual void DoSetPhyParameters ()=0
 Set phy parameters. More...
 
void EndScanning ()
 End scanning. More...
 
void GetModulationFecParams (ModulationType modulationType, uint8_t &bitsPerSymbol, double &fecCode) const
 Get modulation FEC parameters. More...
 

Private Attributes

Ptr< WimaxChannelm_channel
 channel More...
 
uint32_t m_channelBandwidth
 in Hz More...
 
Ptr< WimaxNetDevicem_device
 the device More...
 
EventId m_dlChnlSrchTimeoutEvent
 DL channel search timeout event. More...
 
bool m_duplex
 duplex More...
 
Time m_frameDuration
 in seconds More...
 
uint32_t m_frequency
 in KHz More...
 
uint8_t m_nrCarriers
 number of carriers More...
 
Time m_psDuration
 in seconds More...
 
uint16_t m_psPerFrame
 ps per framce More...
 
uint16_t m_psPerSymbol
 ps per sumbol More...
 
Callback< void, Ptr< const PacketBurst > > m_rxCallback
 receive callback function More...
 
uint64_t m_rxFrequency
 receive frequency More...
 
Callback< void, bool, uint64_t > m_scanningCallback
 scanning callback function More...
 
uint64_t m_scanningFrequency
 scanning frequency More...
 
PhyState m_state
 state More...
 
Time m_symbolDuration
 in seconds More...
 
uint32_t m_symbolsPerFrame
 symbols per frame More...
 
uint64_t m_txFrequency
 transmit frequency More...
 

Additional Inherited Members

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

Detailed Description

WiMAX PHY entity.

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

Member Enumeration Documentation

◆ ModulationType

ModulationType enumeration.

Enumerator
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 

Definition at line 53 of file wimax-phy.h.

◆ PhyState

PhyState enumeration.

Enumerator
PHY_STATE_IDLE 
PHY_STATE_SCANNING 
PHY_STATE_TX 
PHY_STATE_RX 

Definition at line 65 of file wimax-phy.h.

◆ PhyType

PhyType enumeration.

Enumerator
SimpleWimaxPhy 
simpleOfdmWimaxPhy 

Definition at line 74 of file wimax-phy.h.

Constructor & Destructor Documentation

◆ WimaxPhy()

ns3::WimaxPhy::WimaxPhy ( )

Definition at line 81 of file wimax-phy.cc.

References m_duplex, m_rxFrequency, and m_txFrequency.

◆ ~WimaxPhy()

ns3::WimaxPhy::~WimaxPhy ( )
override

Definition at line 98 of file wimax-phy.cc.

Member Function Documentation

◆ AssignStreams()

virtual int64_t ns3::WimaxPhy::AssignStreams ( int64_t  stream)
pure 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

Implemented in ns3::SimpleOfdmWimaxPhy.

◆ Attach()

void ns3::WimaxPhy::Attach ( Ptr< WimaxChannel channel)

Attach the physical layer to a channel.

Parameters
channelthe channel to which the physical layer will be attached

Definition at line 110 of file wimax-phy.cc.

References third::channel, DoAttach(), and m_channel.

Referenced by GetTypeId().

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

◆ DoAttach()

virtual void ns3::WimaxPhy::DoAttach ( Ptr< WimaxChannel channel)
privatepure virtual

Attach channel.

Parameters
channelthe wimax channel

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by Attach().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::WimaxPhy::DoDispose ( void  )
overridevirtual

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 103 of file wimax-phy.cc.

References m_channel, and m_device.

Referenced by ns3::SimpleOfdmWimaxPhy::DoDispose().

+ Here is the caller graph for this function:

◆ DoGetDataRate()

virtual uint32_t ns3::WimaxPhy::DoGetDataRate ( ModulationType  modulationType) const
privatepure virtual

Get data rate.

Parameters
modulationTypethe modulation type
Returns
the data rate

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetDataRate().

+ Here is the caller graph for this function:

◆ DoGetFrameDuration()

virtual Time ns3::WimaxPhy::DoGetFrameDuration ( uint8_t  frameDurationCode) const
privatepure virtual

Get frame duration.

Parameters
frameDurationCodethe frame duration code
Returns
the frame duration time

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetFrameDuration().

+ Here is the caller graph for this function:

◆ DoGetFrameDurationCode()

virtual uint8_t ns3::WimaxPhy::DoGetFrameDurationCode ( ) const
privatepure virtual

Get frame duration code.

Returns
the frame duration code

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetFrameDurationCode().

+ Here is the caller graph for this function:

◆ DoGetGValue()

virtual double ns3::WimaxPhy::DoGetGValue ( ) const
privatepure virtual

Get G value.

Returns
he G value

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetGValue().

+ Here is the caller graph for this function:

◆ DoGetNfft()

virtual uint16_t ns3::WimaxPhy::DoGetNfft ( ) const
privatepure virtual

Get NFFT.

Returns
the NFFT

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetNfft().

+ Here is the caller graph for this function:

◆ DoGetNrBytes()

virtual uint64_t ns3::WimaxPhy::DoGetNrBytes ( uint32_t  symbols,
ModulationType  modulationType 
) const
privatepure virtual

Get number of bytes.

Parameters
symbolsthe number of symbols
modulationTypethe modulation type
Returns
the number of bytes

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetNrBytes().

+ Here is the caller graph for this function:

◆ DoGetNrSymbols()

virtual uint64_t ns3::WimaxPhy::DoGetNrSymbols ( uint32_t  size,
ModulationType  modulationType 
) const
privatepure virtual

Get number of symbols.

Parameters
sizethe transmission size
modulationTypethe modulation type
Returns
the number of symbols

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetNrSymbols().

+ Here is the caller graph for this function:

◆ DoGetRtg()

virtual uint16_t ns3::WimaxPhy::DoGetRtg ( ) const
privatepure virtual

Get RTG.

Returns
the RTG

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetRtg().

+ Here is the caller graph for this function:

◆ DoGetSamplingFactor()

virtual double ns3::WimaxPhy::DoGetSamplingFactor ( ) const
privatepure virtual

Get sampling factor.

Returns
the sampling factor

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetSamplingFactor().

+ Here is the caller graph for this function:

◆ DoGetSamplingFrequency()

virtual double ns3::WimaxPhy::DoGetSamplingFrequency ( ) const
privatepure virtual

Get sampling frequency.

Returns
the sampling frequency

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetSamplingFrequency().

+ Here is the caller graph for this function:

◆ DoGetTransmissionTime()

virtual Time ns3::WimaxPhy::DoGetTransmissionTime ( uint32_t  size,
ModulationType  modulationType 
) const
privatepure virtual

Get transmission time.

Parameters
sizethe transmission size
modulationTypethe modulation type
Returns
the transmission time

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetTransmissionTime().

+ Here is the caller graph for this function:

◆ DoGetTtg()

virtual uint16_t ns3::WimaxPhy::DoGetTtg ( ) const
privatepure virtual

Get TTG.

Returns
the TTG

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by GetTtg().

+ Here is the caller graph for this function:

◆ DoSetDataRates()

virtual void ns3::WimaxPhy::DoSetDataRates ( )
privatepure virtual

Set data rates.

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by SetDataRates().

+ Here is the caller graph for this function:

◆ DoSetPhyParameters()

virtual void ns3::WimaxPhy::DoSetPhyParameters ( )
privatepure virtual

Set phy parameters.

Implemented in ns3::SimpleOfdmWimaxPhy.

Referenced by SetPhyParameters().

+ Here is the caller graph for this function:

◆ EndScanning()

void ns3::WimaxPhy::EndScanning ( )
private

End scanning.

Definition at line 148 of file wimax-phy.cc.

References m_scanningCallback, and m_scanningFrequency.

Referenced by StartScanning().

+ Here is the caller graph for this function:

◆ GetChannel()

Ptr< WimaxChannel > ns3::WimaxPhy::GetChannel ( ) const
Returns
the channel to which this physical layer is attached

Definition at line 117 of file wimax-phy.cc.

References m_channel.

Referenced by ns3::SimpleOfdmWimaxPhy::DoAttach(), GetTypeId(), and ns3::SimpleOfdmWimaxPhy::StartSendDummyFecBlock().

+ Here is the caller graph for this function:

◆ GetChannelBandwidth()

uint32_t ns3::WimaxPhy::GetChannelBandwidth ( ) const

Get the channel bandwidth.

Returns
the channel bandwidth

Definition at line 338 of file wimax-phy.cc.

References m_channelBandwidth.

Referenced by ns3::SimpleOfdmWimaxPhy::DoGetSamplingFactor(), ns3::SimpleOfdmWimaxPhy::DoGetSamplingFrequency(), ns3::SimpleOfdmWimaxPhy::GetBandwidth(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetChnlSrchTimeoutEvent()

EventId ns3::WimaxPhy::GetChnlSrchTimeoutEvent ( ) const

Get channel search timeout event.

Returns
event ID

Definition at line 216 of file wimax-phy.cc.

References m_dlChnlSrchTimeoutEvent.

Referenced by ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ GetDataRate()

uint32_t ns3::WimaxPhy::GetDataRate ( WimaxPhy::ModulationType  modulationType) const

Get the data rate corresponding to a modulation type.

Returns
the data rate
Parameters
modulationTypethe modulation that you want to get its data rate

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

References DoGetDataRate().

+ Here is the call graph for this function:

◆ GetDevice()

Ptr< NetDevice > ns3::WimaxPhy::GetDevice ( ) const
Returns
the the device in which this physical layer is installed

Definition at line 129 of file wimax-phy.cc.

References m_device.

◆ GetFrameDuration() [1/2]

Time ns3::WimaxPhy::GetFrameDuration ( ) const

Get the frame duration.

Returns
the frame duration

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

References GetFrameDurationSec().

Referenced by ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode(), and ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

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

◆ GetFrameDuration() [2/2]

Time ns3::WimaxPhy::GetFrameDuration ( uint8_t  frameDurationCode) const

Get the frame duration corresponding to a given code.

Parameters
frameDurationCodethe frame duration code to use
Returns
the frame duration

Definition at line 276 of file wimax-phy.cc.

References DoGetFrameDuration().

+ Here is the call graph for this function:

◆ GetFrameDurationCode()

uint8_t ns3::WimaxPhy::GetFrameDurationCode ( ) const

Get the frame duration code.

Returns
the frame duration code

Definition at line 270 of file wimax-phy.cc.

References DoGetFrameDurationCode().

+ Here is the call graph for this function:

◆ GetFrameDurationSec()

Time ns3::WimaxPhy::GetFrameDurationSec ( ) const

Get the frame duration This method is redundant with GetFrameDuration ()

Returns
the frame duration

Definition at line 314 of file wimax-phy.cc.

References m_frameDuration.

Referenced by GetFrameDuration(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetFrequency()

uint32_t ns3::WimaxPhy::GetFrequency ( ) const

Get the frequency on which the device is locked.

Returns
the frequency on which the device is locked

Definition at line 326 of file wimax-phy.cc.

References m_frequency.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetGValue()

double ns3::WimaxPhy::GetGValue ( ) const

Get the guard interval factor (the ratio TG/Td)

Returns
the guard interval factor

Definition at line 386 of file wimax-phy.cc.

References DoGetGValue().

+ Here is the call graph for this function:

◆ GetModulationFecParams()

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

Get modulation FEC parameters.

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

◆ GetNfft()

uint16_t ns3::WimaxPhy::GetNfft ( ) const

Get the size of the FFT.

Returns
the size of the FFT

Definition at line 344 of file wimax-phy.cc.

References DoGetNfft().

+ Here is the call graph for this function:

◆ GetNrBytes()

uint64_t ns3::WimaxPhy::GetNrBytes ( uint32_t  symbols,
WimaxPhy::ModulationType  modulationType 
) const

Get the maximum number of bytes that could be carried by symbols symbols using the modulation modulationType.

Parameters
symbolsthe number of symbols to use
modulationTypethe modulation that will be used
Returns
the maximum number of bytes

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

References DoGetNrBytes().

+ Here is the call graph for this function:

◆ GetNrCarriers()

uint8_t ns3::WimaxPhy::GetNrCarriers ( ) const

Get the number of carriers in the physical frame.

Returns
the number of carriers in the physical frame

Definition at line 296 of file wimax-phy.cc.

References m_nrCarriers.

Referenced by ns3::SimpleOfdmWimaxPhy::CalculateDataRate().

+ Here is the caller graph for this function:

◆ GetNrSymbols()

uint64_t ns3::WimaxPhy::GetNrSymbols ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const

Get the number of symbols needed to transmit size bytes using the modulation modulationType.

Returns
the number of symbols needed
Parameters
sizethe number of byte to transmit
modulationTypethe modulation that will be used to transmit the bytes

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

References DoGetNrSymbols().

+ Here is the call graph for this function:

◆ GetPhyType()

virtual PhyType ns3::WimaxPhy::GetPhyType ( ) const
pure virtual

Get the type of the physical layer.

Returns
the phy type

Implemented in ns3::SimpleOfdmWimaxPhy.

◆ GetPsDuration()

Time ns3::WimaxPhy::GetPsDuration ( ) const

Get the physical slot duration.

Returns
the physical slot duration

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

References m_psDuration.

◆ GetPsPerFrame()

uint16_t ns3::WimaxPhy::GetPsPerFrame ( ) const

Get the number of physical slots per frame.

Returns
the number of physical slot per frame

Definition at line 410 of file wimax-phy.cc.

References m_psPerFrame.

◆ GetPsPerSymbol()

uint16_t ns3::WimaxPhy::GetPsPerSymbol ( ) const

Get the number of physical slots per symbol.

Returns
the number of physical slots per symbol

Definition at line 398 of file wimax-phy.cc.

References m_psPerSymbol.

Referenced by ns3::SimpleOfdmWimaxPhy::DoGetRtg(), and ns3::SimpleOfdmWimaxPhy::DoGetTtg().

+ Here is the caller graph for this function:

◆ GetReceiveCallback()

Callback< void, Ptr< const PacketBurst > > ns3::WimaxPhy::GetReceiveCallback ( ) const
Returns
the receive callback

Definition at line 160 of file wimax-phy.cc.

References m_rxCallback.

Referenced by ns3::SimpleOfdmWimaxPhy::EndReceive().

+ Here is the caller graph for this function:

◆ GetRtg()

uint16_t ns3::WimaxPhy::GetRtg ( ) const

Get the receive/transmit transition gap.

Returns
the receive/transmit transition gap

Definition at line 264 of file wimax-phy.cc.

References DoGetRtg().

+ Here is the call graph for this function:

◆ GetRxFrequency()

uint64_t ns3::WimaxPhy::GetRxFrequency ( ) const

Get the reception frequency.

Returns
the reception frequency

Definition at line 180 of file wimax-phy.cc.

References m_rxFrequency.

Referenced by ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ GetSamplingFactor()

double ns3::WimaxPhy::GetSamplingFactor ( ) const

Get the sampling factor.

Returns
the sampling factor

Definition at line 350 of file wimax-phy.cc.

References DoGetSamplingFactor().

+ Here is the call graph for this function:

◆ GetSamplingFrequency()

double ns3::WimaxPhy::GetSamplingFrequency ( ) const

Get the sampling frequency.

Returns
the sampling frequency

Definition at line 356 of file wimax-phy.cc.

References DoGetSamplingFrequency().

+ Here is the call graph for this function:

◆ GetScanningFrequency()

uint64_t ns3::WimaxPhy::GetScanningFrequency ( ) const

Get the scanning frequency.

Returns
the scanning frequency

Definition at line 192 of file wimax-phy.cc.

References m_scanningFrequency.

Referenced by SetScanningCallback(), and ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ GetState()

WimaxPhy::PhyState ns3::WimaxPhy::GetState ( ) const

Get the state of the device.

Returns
the state of the device (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX)

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

References m_state.

Referenced by ns3::SimpleOfdmWimaxPhy::Send(), and ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ GetSymbolDuration()

Time ns3::WimaxPhy::GetSymbolDuration ( ) const

Get the OFDM symbol duration.

Returns
the symbol duration in second

Definition at line 380 of file wimax-phy.cc.

References m_symbolDuration.

Referenced by ns3::SimpleOfdmWimaxPhy::CalculateDataRate(), ns3::SimpleOfdmWimaxPhy::DoGetNrBytes(), ns3::SimpleOfdmWimaxPhy::DoGetNrSymbols(), and ns3::SimpleOfdmWimaxPhy::DoGetTransmissionTime().

+ Here is the caller graph for this function:

◆ GetSymbolsPerFrame()

uint32_t ns3::WimaxPhy::GetSymbolsPerFrame ( ) const

Get the number of symbols per frame.

Returns
the number of symbols per frame

Definition at line 422 of file wimax-phy.cc.

References m_symbolsPerFrame.

◆ GetTransmissionTime()

Time ns3::WimaxPhy::GetTransmissionTime ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const

Get transmission time needed to send bytes at a given modulation.

Returns
the time needed
Parameters
sizethe number of byte to transmit
modulationTypethe modulation that will be used to transmit the bytes

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

References DoGetTransmissionTime().

+ Here is the call graph for this function:

◆ GetTtg()

uint16_t ns3::WimaxPhy::GetTtg ( ) const

Get the transmit/receive transition gap.

Returns
the transmit/receive transition gap

Definition at line 258 of file wimax-phy.cc.

References DoGetTtg().

+ Here is the call graph for this function:

◆ GetTxFrequency()

uint64_t ns3::WimaxPhy::GetTxFrequency ( ) const

Get the transmission frequency.

Returns
the transmission frequency

Definition at line 186 of file wimax-phy.cc.

References m_txFrequency.

Referenced by ns3::SimpleOfdmWimaxPhy::StartSendDummyFecBlock().

+ Here is the caller graph for this function:

◆ GetTypeId()

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

◆ IsDuplex()

bool ns3::WimaxPhy::IsDuplex ( ) const

Check if configured in duplex mode.

Returns
true if the device is configured in duplex mode

Definition at line 210 of file wimax-phy.cc.

References m_duplex.

Referenced by ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ Send()

virtual void ns3::WimaxPhy::Send ( SendParams params)
pure virtual

send a packet on the channel

Parameters
paramsthe parameters used to send the packet

Implemented in ns3::SimpleOfdmWimaxPhy.

◆ SetChannelBandwidth()

void ns3::WimaxPhy::SetChannelBandwidth ( uint32_t  channelBandwidth)

Set the channel bandwidth.

Parameters
channelBandwidthThe channel bandwidth

Definition at line 332 of file wimax-phy.cc.

References m_channelBandwidth.

Referenced by GetTypeId(), and ns3::SimpleOfdmWimaxPhy::SetBandwidth().

+ Here is the caller graph for this function:

◆ SetDataRates()

void ns3::WimaxPhy::SetDataRates ( )

calculates the data rate of each modulation and save them for future use

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

References DoSetDataRates().

+ Here is the call graph for this function:

◆ SetDevice()

void ns3::WimaxPhy::SetDevice ( Ptr< WimaxNetDevice device)

Set the device in which this physical layer is installed.

Parameters
devicethe device in which this physical layer is installed

Definition at line 123 of file wimax-phy.cc.

References m_device.

◆ SetDuplex()

void ns3::WimaxPhy::SetDuplex ( uint64_t  rxFrequency,
uint64_t  txFrequency 
)

configure the physical layer in duplex mode

Parameters
rxFrequencythe reception frequency
txFrequencythe transmission frequency

Definition at line 166 of file wimax-phy.cc.

References m_rxFrequency, and m_txFrequency.

◆ SetFrameDuration()

void ns3::WimaxPhy::SetFrameDuration ( Time  frameDuration)

Set the frame duration.

Parameters
frameDurationthe frame duration

Definition at line 302 of file wimax-phy.cc.

References m_frameDuration.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetFrequency()

void ns3::WimaxPhy::SetFrequency ( uint32_t  frequency)

set the frequency on which the device should lock

Parameters
frequencythe frequency to configure

Definition at line 320 of file wimax-phy.cc.

References m_frequency.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNrCarriers()

void ns3::WimaxPhy::SetNrCarriers ( uint8_t  nrCarriers)

Set the number of carriers in the physical frame.

Set the number of carriers in the physical frame

Parameters
nrCarriersthe number of carriers in the frame

Definition at line 290 of file wimax-phy.cc.

References m_nrCarriers.

Referenced by ns3::SimpleOfdmWimaxPhy::InitSimpleOfdmWimaxPhy().

+ Here is the caller graph for this function:

◆ SetPhyParameters()

void ns3::WimaxPhy::SetPhyParameters ( )

computes the Physical parameters and store them

Definition at line 284 of file wimax-phy.cc.

References DoSetPhyParameters().

+ Here is the call graph for this function:

◆ SetPsDuration()

void ns3::WimaxPhy::SetPsDuration ( Time  psDuration)

set the physical slot duration

Parameters
psDurationthe physical slot duration

Definition at line 362 of file wimax-phy.cc.

References m_psDuration.

Referenced by ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

+ Here is the caller graph for this function:

◆ SetPsPerFrame()

void ns3::WimaxPhy::SetPsPerFrame ( uint16_t  psPerFrame)

set the number of physical slots per frame

Parameters
psPerFramethe number of physical slots per frame

Definition at line 404 of file wimax-phy.cc.

References m_psPerFrame.

Referenced by ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

+ Here is the caller graph for this function:

◆ SetPsPerSymbol()

void ns3::WimaxPhy::SetPsPerSymbol ( uint16_t  psPerSymbol)

set the number of physical slots per symbol

Parameters
psPerSymbolthe number of physical slots per symbol

Definition at line 392 of file wimax-phy.cc.

References m_psPerSymbol.

Referenced by ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

+ Here is the caller graph for this function:

◆ SetReceiveCallback()

void ns3::WimaxPhy::SetReceiveCallback ( Callback< void, Ptr< const PacketBurst >>  callback)

set the callback function to call when a burst is received

Parameters
callbackthe callback function to call when a burst is received

Definition at line 154 of file wimax-phy.cc.

References m_rxCallback.

◆ SetScanningCallback()

void ns3::WimaxPhy::SetScanningCallback ( ) const

calls the scanning call back function

Definition at line 222 of file wimax-phy.cc.

References GetScanningFrequency(), and m_scanningCallback.

Referenced by ns3::SimpleOfdmWimaxPhy::StartReceive().

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

◆ SetSimplex()

void ns3::WimaxPhy::SetSimplex ( uint64_t  frequency)

configure the physical layer in simplex mode

Parameters
frequencythe frequency to be used for reception and transmission process

Definition at line 173 of file wimax-phy.cc.

References m_rxFrequency, and m_txFrequency.

Referenced by ns3::SimpleOfdmWimaxPhy::StartReceive().

+ Here is the caller graph for this function:

◆ SetState()

void ns3::WimaxPhy::SetState ( PhyState  state)

set the state of the device

Parameters
statethe state to be set (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX)

Definition at line 198 of file wimax-phy.cc.

References m_state.

Referenced by ns3::SimpleOfdmWimaxPhy::EndReceiveFecBlock(), ns3::SimpleOfdmWimaxPhy::EndSend(), ns3::SimpleOfdmWimaxPhy::EndSendFecBlock(), ns3::SimpleOfdmWimaxPhy::StartReceive(), and ns3::SimpleOfdmWimaxPhy::StartSendDummyFecBlock().

+ Here is the caller graph for this function:

◆ SetSymbolDuration()

void ns3::WimaxPhy::SetSymbolDuration ( Time  symbolDuration)

set the OFDM symbol duration

Parameters
symbolDurationthe symbol duration

Definition at line 374 of file wimax-phy.cc.

References m_symbolDuration.

Referenced by ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

+ Here is the caller graph for this function:

◆ SetSymbolsPerFrame()

void ns3::WimaxPhy::SetSymbolsPerFrame ( uint32_t  symbolsPerFrame)

set the number of symbols per frame

Parameters
symbolsPerFramethe number of symbols per frame

Definition at line 416 of file wimax-phy.cc.

References m_symbolsPerFrame.

Referenced by ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters().

+ Here is the caller graph for this function:

◆ StartScanning()

void ns3::WimaxPhy::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

Parameters
frequencythe frequency to scan
timeoutthe timeout before considering the channel as unusable
callbackthe function to call if the channel could be used

Definition at line 135 of file wimax-phy.cc.

References EndScanning(), m_dlChnlSrchTimeoutEvent, m_scanningCallback, m_scanningFrequency, m_state, NS_ASSERT_MSG, PHY_STATE_IDLE, PHY_STATE_SCANNING, ns3::Simulator::Schedule(), and timeout.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_channel

Ptr<WimaxChannel> ns3::WimaxPhy::m_channel
private

channel

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

Referenced by Attach(), DoDispose(), and GetChannel().

◆ m_channelBandwidth

uint32_t ns3::WimaxPhy::m_channelBandwidth
private

in Hz

Definition at line 481 of file wimax-phy.h.

Referenced by GetChannelBandwidth(), and SetChannelBandwidth().

◆ m_device

Ptr<WimaxNetDevice> ns3::WimaxPhy::m_device
private

the device

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

Referenced by DoDispose(), GetDevice(), and SetDevice().

◆ m_dlChnlSrchTimeoutEvent

EventId ns3::WimaxPhy::m_dlChnlSrchTimeoutEvent
private

DL channel search timeout event.

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

Referenced by GetChnlSrchTimeoutEvent(), and StartScanning().

◆ m_duplex

bool ns3::WimaxPhy::m_duplex
private

duplex

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

Referenced by WimaxPhy(), and IsDuplex().

◆ m_frameDuration

Time ns3::WimaxPhy::m_frameDuration
private

in seconds

Definition at line 479 of file wimax-phy.h.

Referenced by GetFrameDurationSec(), and SetFrameDuration().

◆ m_frequency

uint32_t ns3::WimaxPhy::m_frequency
private

in KHz

Definition at line 480 of file wimax-phy.h.

Referenced by GetFrequency(), and SetFrequency().

◆ m_nrCarriers

uint8_t ns3::WimaxPhy::m_nrCarriers
private

number of carriers

Definition at line 478 of file wimax-phy.h.

Referenced by GetNrCarriers(), and SetNrCarriers().

◆ m_psDuration

Time ns3::WimaxPhy::m_psDuration
private

in seconds

Definition at line 482 of file wimax-phy.h.

Referenced by GetPsDuration(), and SetPsDuration().

◆ m_psPerFrame

uint16_t ns3::WimaxPhy::m_psPerFrame
private

ps per framce

Definition at line 485 of file wimax-phy.h.

Referenced by GetPsPerFrame(), and SetPsPerFrame().

◆ m_psPerSymbol

uint16_t ns3::WimaxPhy::m_psPerSymbol
private

ps per sumbol

Definition at line 484 of file wimax-phy.h.

Referenced by GetPsPerSymbol(), and SetPsPerSymbol().

◆ m_rxCallback

Callback<void, Ptr<const PacketBurst> > ns3::WimaxPhy::m_rxCallback
private

receive callback function

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

Referenced by GetReceiveCallback(), and SetReceiveCallback().

◆ m_rxFrequency

uint64_t ns3::WimaxPhy::m_rxFrequency
private

receive frequency

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

Referenced by WimaxPhy(), GetRxFrequency(), SetDuplex(), and SetSimplex().

◆ m_scanningCallback

Callback<void, bool, uint64_t> ns3::WimaxPhy::m_scanningCallback
private

scanning callback function

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

Referenced by EndScanning(), SetScanningCallback(), and StartScanning().

◆ m_scanningFrequency

uint64_t ns3::WimaxPhy::m_scanningFrequency
private

scanning frequency

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

Referenced by EndScanning(), GetScanningFrequency(), and StartScanning().

◆ m_state

PhyState ns3::WimaxPhy::m_state
private

state

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

Referenced by GetState(), SetState(), and StartScanning().

◆ m_symbolDuration

Time ns3::WimaxPhy::m_symbolDuration
private

in seconds

Definition at line 483 of file wimax-phy.h.

Referenced by GetSymbolDuration(), and SetSymbolDuration().

◆ m_symbolsPerFrame

uint32_t ns3::WimaxPhy::m_symbolsPerFrame
private

symbols per frame

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

Referenced by GetSymbolsPerFrame(), and SetSymbolsPerFrame().

◆ m_txFrequency

uint64_t ns3::WimaxPhy::m_txFrequency
private

transmit frequency

Definition at line 468 of file wimax-phy.h.

Referenced by WimaxPhy(), GetTxFrequency(), SetDuplex(), and SetSimplex().


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