A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::WimaxPhy Class Referenceabstract

#include <introspected-doxygen.h>

+ Inheritance 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
}
 
enum  PhyState { PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX }
 
enum  PhyType { SimpleWimaxPhy, simpleOfdmWimaxPhy }
 

Public Member Functions

virtual int64_t AssignStreams (int64_t stream)=0
 
void Attach (Ptr< WimaxChannel > channel)
 
virtual void DoDispose (void)
 
Ptr< WimaxChannelGetChannel (void) const
 
uint32_t GetChannelBandwidth (void) const
 
EventId GetChnlSrchTimeoutEvent (void) const
 
uint32_t GetDataRate (ModulationType modulationType) const
 
Ptr< NetDeviceGetDevice (void) const
 
Time GetFrameDuration (void) const
 
Time GetFrameDuration (uint8_t frameDurationCode) const
 
uint8_t GetFrameDurationCode (void) const
 
Time GetFrameDurationSec (void) const
 
uint32_t GetFrequency (void) const
 
double GetGValue (void) const
 
virtual Ptr< ObjectGetMobility (void)
 
uint16_t GetNfft (void) const
 
uint64_t GetNrBytes (uint32_t symbols, ModulationType modulationType) const
 
uint8_t GetNrCarriers (void) const
 
uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const
 
virtual PhyType GetPhyType (void) const =0
 Get the type of the physical layer.
 
Time GetPsDuration (void) const
 
uint16_t GetPsPerFrame (void) const
 
uint16_t GetPsPerSymbol (void) const
 
Callback< void, Ptr< const
PacketBurst > > 
GetReceiveCallback (void) const
 
uint16_t GetRtg (void) const
 
uint64_t GetRxFrequency (void) const
 
double GetSamplingFactor (void) const
 
double GetSamplingFrequency (void) const
 
uint64_t GetScanningFrequency (void) const
 
PhyState GetState (void) const
 
Time GetSymbolDuration (void) const
 
uint32_t GetSymbolsPerFrame (void) const
 
Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const
 
uint16_t GetTtg (void) const
 
uint64_t GetTxFrequency (void) const
 
bool IsDuplex (void) const
 
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 (void)
 calculates the data rate of each modulation and save them for future use
 
void SetDevice (Ptr< WimaxNetDevice > device)
 Set the device in which this physical layer is installed. More...
 
void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency)
 configure the physical layer in duplex mode More...
 
void SetFrameDuration (Time frameDuration)
 Set the frame duration. More...
 
void SetFrequency (uint32_t frequency)
 set the frequency on which the device should lock More...
 
virtual void SetMobility (Ptr< Object > mobility)
 set the mobility model of the device More...
 
void SetNrCarriers (uint8_t nrCarriers)
 Set the number of carriers in the physical frame. More...
 
void SetPhyParameters (void)
 computes the Physical parameters and store them
 
void SetPsDuration (Time psDuration)
 set the physical slot duration in seconds More...
 
void SetPsPerFrame (uint16_t psPerFrame)
 set the number of physical slot per frame More...
 
void SetPsPerSymbol (uint16_t psPerSymbol)
 set the number of physical slots per symbol More...
 
void SetReceiveCallback (Callback< void, Ptr< const PacketBurst > > callback)
 set the callback function to call when a burst is received More...
 
void SetScanningCallback (void) const
 calls the scanning call back function
 
void SetSimplex (uint64_t frequency)
 configure the physical layer in simplex mode More...
 
void SetState (PhyState state)
 set the state of the device More...
 
void SetSymbolDuration (Time symbolDuration)
 set the OFMD symbol duration in second More...
 
void SetSymbolsPerFrame (uint32_t symbolsPerFrame)
 set the number of symbols per frame More...
 
void StartScanning (uint64_t frequency, Time timeout, Callback< void, bool, uint64_t > callback)
 scan the frequency frequency for maximum timeout seconds and calls callback if the frequency could be used More...
 
- Public Member Functions inherited from ns3::Object
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Member Functions

virtual void DoAttach (Ptr< WimaxChannel > channel)=0
 
virtual uint32_t DoGetDataRate (ModulationType modulationType) const =0
 
virtual Time DoGetFrameDuration (uint8_t frameDurationCode) const =0
 
virtual uint8_t DoGetFrameDurationCode (void) const =0
 
virtual double DoGetGValue (void) const =0
 
virtual uint16_t DoGetNfft (void) const =0
 
virtual uint64_t DoGetNrBytes (uint32_t symbols, ModulationType modulationType) const =0
 
virtual uint64_t DoGetNrSymbols (uint32_t size, ModulationType modulationType) const =0
 
virtual uint16_t DoGetRtg (void) const =0
 
virtual double DoGetSamplingFactor (void) const =0
 
virtual double DoGetSamplingFrequency (void) const =0
 
virtual Time DoGetTransmissionTime (uint32_t size, ModulationType modulationType) const =0
 
virtual uint16_t DoGetTtg (void) const =0
 
virtual void DoSetDataRates (void)=0
 
virtual void DoSetPhyParameters (void)=0
 
void EndScanning (void)
 
void GetModulationFecParams (ModulationType modulationType, uint8_t &bitsPerSymbol, double &fecCode) const
 

Private Attributes

Ptr< WimaxChannelm_channel
 
uint32_t m_channelBandwidth
 
Ptr< WimaxNetDevicem_device
 
EventId m_dlChnlSrchTimeoutEvent
 
bool m_duplex
 
Time m_frameDuration
 
uint32_t m_frequency
 
Ptr< Objectm_mobility
 
uint8_t m_nrCarriers
 
Time m_psDuration
 
uint16_t m_psPerFrame
 
uint16_t m_psPerSymbol
 
Callback< void, Ptr< const
PacketBurst > > 
m_rxCallback
 
uint64_t m_rxFrequency
 
Callback< void, bool, uint64_t > m_scanningCallback
 
uint64_t m_scanningFrequency
 
PhyState m_state
 
Time m_symbolDuration
 
uint32_t m_symbolsPerFrame
 
uint64_t m_txFrequency
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

Config Paths

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

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

Attributes

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

No TraceSources are defined for this type.

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

Member Function Documentation

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.

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

void ns3::WimaxPhy::DoDispose ( void  )
virtual

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

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

It is safe to call GetObject from within this method.

Reimplemented from ns3::Object.

Reimplemented in ns3::SimpleOfdmWimaxPhy.

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

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

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

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

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

uint32_t ns3::WimaxPhy::GetChannelBandwidth ( void  ) const
Returns
the channel bandwidth

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

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

uint32_t ns3::WimaxPhy::GetDataRate ( WimaxPhy::ModulationType  modulationType) const
Returns
the data rate of the modulation modulationType
Parameters
modulationTypethe modulation that you want to get its data rate

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

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

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

Time ns3::WimaxPhy::GetFrameDuration ( void  ) const
Returns
the frame duration

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

References GetFrameDurationSec().

Time ns3::WimaxPhy::GetFrameDurationSec ( void  ) const
Returns
the frame duration in seconds

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

Referenced by GetFrameDuration().

uint32_t ns3::WimaxPhy::GetFrequency ( void  ) const
Returns
the frequency on which the device is locked

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

double ns3::WimaxPhy::GetGValue ( void  ) const
Returns
the guard interval factor (The ratio TG/Td)

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

Ptr< Object > ns3::WimaxPhy::GetMobility ( void  )
virtual
Returns
the mobility model of the device

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

uint16_t ns3::WimaxPhy::GetNfft ( void  ) const
Returns
the size of the FFT

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

uint64_t ns3::WimaxPhy::GetNrBytes ( uint32_t  symbols,
WimaxPhy::ModulationType  modulationType 
) const
Returns
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

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

uint8_t ns3::WimaxPhy::GetNrCarriers ( void  ) const
Returns
the number of carriers in the frame

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

uint64_t ns3::WimaxPhy::GetNrSymbols ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const
Returns
the number of symbols needed to transmit size bytes using the modulation modulationType
Parameters
sizethe number of byte to transmit
modulationTypethe modulation that will be used to transmit the bytes

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

Time ns3::WimaxPhy::GetPsDuration ( void  ) const
Returns
the physical slot duration

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

uint16_t ns3::WimaxPhy::GetPsPerFrame ( void  ) const
Returns
the number of physical slot per frame

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

uint16_t ns3::WimaxPhy::GetPsPerSymbol ( void  ) const
Returns
the number of physical slots per symbol

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

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

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

uint16_t ns3::WimaxPhy::GetRtg ( void  ) const
Returns
the receive/transmit transition gap

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

uint64_t ns3::WimaxPhy::GetRxFrequency ( void  ) const
Returns
the reception frequency

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

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

double ns3::WimaxPhy::GetSamplingFactor ( void  ) const
Returns
the sampling factor

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

double ns3::WimaxPhy::GetSamplingFrequency ( void  ) const
Returns
the sampling frequency

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

uint64_t ns3::WimaxPhy::GetScanningFrequency ( void  ) const
Returns
the scanning frequency

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

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

WimaxPhy::PhyState ns3::WimaxPhy::GetState ( void  ) const
Returns
the state of the device (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX)

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

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

Time ns3::WimaxPhy::GetSymbolDuration ( void  ) const
Returns
the symbol duration in second

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

uint32_t ns3::WimaxPhy::GetSymbolsPerFrame ( void  ) const
Returns
the number of symbols per frame

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

Time ns3::WimaxPhy::GetTransmissionTime ( uint32_t  size,
WimaxPhy::ModulationType  modulationType 
) const
Returns
the time needed to transmit size bytes using the modulation modulationType
Parameters
sizethe number of byte to transmit
modulationTypethe modulation that will be used to transmit the bytes

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

uint16_t ns3::WimaxPhy::GetTtg ( void  ) const
Returns
the transmit/receive transition gap

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

uint64_t ns3::WimaxPhy::GetTxFrequency ( void  ) const
Returns
the transmission frequency

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

bool ns3::WimaxPhy::IsDuplex ( void  ) const
Returns
true if the device is configured in duplex mode

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

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

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.

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

Set the channel bandwidth.

Parameters
channelBandwidthThe channel bandwidth

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

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

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

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

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

Set the frame duration.

Parameters
frameDurationthe frame duration

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

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

set the frequency on which the device should lock

Parameters
frequencythe frequency to configure

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

void ns3::WimaxPhy::SetMobility ( Ptr< Object mobility)
virtual

set the mobility model of the device

Parameters
mobilitythe mobility model to set

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

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

Set the number of carriers in the physical frame.

Parameters
nrCarriersthe number of carriers in the frame

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

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

set the physical slot duration in seconds

Parameters
psDurationthe physical slot duration

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

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

set the number of physical slot per frame

Parameters
psPerFramethe number of physical slot per frame

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

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

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

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

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

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

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

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

set the OFMD symbol duration in second

Parameters
symbolDurationthe symbol duration is second

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

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

set the number of symbols per frame

Parameters
symbolsPerFramethe number of symbols per frame

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

void ns3::WimaxPhy::StartScanning ( uint64_t  frequency,
Time  timeout,
Callback< void, bool, uint64_t >  callback 
)

scan the frequency frequency for maximum timeout seconds and calls callback if the frequency could be used

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

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

References NS_ASSERT_MSG, and ns3::Simulator::Schedule().


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