ns-3
ns3::SimpleOfdmWimaxPhy Class Reference
Inheritance diagram for ns3::SimpleOfdmWimaxPhy:
Collaboration diagram for ns3::SimpleOfdmWimaxPhy:

List of all members.

Public Types

enum  FrameDurationCode {
  FRAME_DURATION_2_POINT_5_MS, FRAME_DURATION_4_MS, FRAME_DURATION_5_MS, FRAME_DURATION_8_MS,
  FRAME_DURATION_10_MS, FRAME_DURATION_12_POINT_5_MS, FRAME_DURATION_20_MS
}
- Public Types inherited from ns3::WimaxPhy
enum  ModulationType {
  MODULATION_TYPE_BPSK_12, MODULATION_TYPE_QPSK_12, MODULATION_TYPE_QPSK_34, MODULATION_TYPE_QAM16_12,
  MODULATION_TYPE_QAM16_34, MODULATION_TYPE_QAM64_23, MODULATION_TYPE_QAM64_34
}
enum  PhyState { PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX }
enum  PhyType { SimpleWimaxPhy, simpleOfdmWimaxPhy }

Public Member Functions

 SimpleOfdmWimaxPhy (char *tracesPath)
void ActivateLoss (bool loss)
 if called with true it will enable the loss model
void SetSNRToBlockErrorRateTracesPath (char *tracesPath)
 Set the path of the repository containing the traces.
void DoAttach (Ptr< WimaxChannel > channel)
void SetReceiveCallback (Callback< void, Ptr< PacketBurst >, Ptr< WimaxConnection > > callback)
 set the callback function to call when a burst is received
void Send (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType, uint8_t direction)
 Sends a burst on the channel.
void Send (SendParams *params)
 Sends a burst on the channel.
WimaxPhy::PhyType GetPhyType (void) const
 returns the type this physical layer
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
uint32_t GetBandwidth (void) const
void SetBandwidth (uint32_t BW)
 Set the bandwidth.
double GetTxPower (void) const
void SetTxPower (double txPower)
 set the transmission power
double GetNoiseFigure (void) const
void SetNoiseFigure (double nf)
 set the noise figure of the device
void NotifyTxBegin (Ptr< PacketBurst > burst)
void NotifyTxEnd (Ptr< PacketBurst > burst)
void NotifyTxDrop (Ptr< PacketBurst > burst)
void NotifyRxBegin (Ptr< PacketBurst > burst)
void NotifyRxEnd (Ptr< PacketBurst > burst)
void NotifyRxDrop (Ptr< PacketBurst > burst)
- Public Member Functions inherited from ns3::WimaxPhy
void Attach (Ptr< WimaxChannel > channel)
Ptr< WimaxChannelGetChannel (void) const
void SetDevice (Ptr< WimaxNetDevice > device)
 Set the device in which this physical layer is installed.
Ptr< NetDeviceGetDevice (void) const
void SetReceiveCallback (Callback< void, Ptr< const PacketBurst > > callback)
 set the callback function to call when a burst is received
Callback< void, Ptr< const
PacketBurst > > 
GetReceiveCallback (void) const
void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency)
 configure the physical layer in duplex mode
void SetSimplex (uint64_t frequency)
 configure the physical layer in simplex mode
uint64_t GetRxFrequency (void) const
uint64_t GetTxFrequency (void) const
uint64_t GetScanningFrequency (void) const
void SetNrCarriers (uint8_t nrCarriers)
 Set the number of carriers in the physical frame.
uint8_t GetNrCarriers (void) const
void SetFrameDuration (Time frameDuration)
 Set the frame duration.
Time GetFrameDurationSec (void) const
Time GetFrameDuration (void) const
void SetFrequency (uint32_t frequency)
 set the frequency on which the device should lock
uint32_t GetFrequency (void) const
void SetChannelBandwidth (uint32_t channelBandwidth)
 Set the channel bandwidth.
uint32_t GetChannelBandwidth (void) const
uint16_t GetNfft (void) const
double GetSamplingFactor (void) const
double GetSamplingFrequency (void) const
void SetPsDuration (Time psDuration)
 set the physical slot duration in seconds
Time GetPsDuration (void) const
void SetSymbolDuration (Time symbolDuration)
 set the OFMD symbol duration in second
Time GetSymbolDuration (void) const
double GetGValue (void) const
void SetPsPerSymbol (uint16_t psPerSymbol)
 set the number of physical slots per symbol
uint16_t GetPsPerSymbol (void) const
void SetPsPerFrame (uint16_t psPerFrame)
 set the number of physical slot per frame
uint16_t GetPsPerFrame (void) const
void SetSymbolsPerFrame (uint32_t symbolsPerFrame)
 set the number of symbols per frame
uint32_t GetSymbolsPerFrame (void) const
bool IsDuplex (void) const
void SetState (PhyState state)
 set the state of the device
PhyState GetState (void) const
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
void SetScanningCallback (void) const
 calls the scanning call back function
EventId GetChnlSrchTimeoutEvent (void) const
void SetDataRates (void)
 calculates the data rate of each modulation and save them for future use
uint32_t GetDataRate (ModulationType modulationType) const
Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const
uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const
uint64_t GetNrBytes (uint32_t symbols, ModulationType modulationType) const
uint16_t GetTtg (void) const
uint16_t GetRtg (void) const
uint8_t GetFrameDurationCode (void) const
Time GetFrameDuration (uint8_t frameDurationCode) const
void SetPhyParameters (void)
 computes the Physical parameters and store them
virtual Ptr< ObjectGetMobility (void)
virtual void SetMobility (Ptr< Object > mobility)
 set the mobility model of the device
- Public Member Functions inherited from ns3::Object
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Dispose (void)
void AggregateObject (Ptr< Object > other)
AggregateIterator GetAggregateIterator (void) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::SimpleOfdmWimaxPhy.

Member Function Documentation

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

if called with true it will enable the loss model

Parameters:
lossset to true to enable the loss model

References ns3::SNRToBlockErrorRateManager::ActivateLoss().

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

Attach the physical layer to a channel.

Parameters:
channelthe channel to which the physical layer will be attached

Implements ns3::WimaxPhy.

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

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

References ns3::WimaxPhy::GetChannelBandwidth().

Referenced by StartReceive().

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

Referenced by GetTypeId().

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

returns the type this physical layer

Returns:
always WimaxPhy::simpleOfdmWimaxPhy;

Implements ns3::WimaxPhy.

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

Referenced by GetTypeId().

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

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

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

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

Attributes defined for this type:

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

Attributes defined in parent class ns3::WimaxPhy:

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

TraceSources defined for this type:

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

Reimplemented from ns3::WimaxPhy.

References GetNoiseFigure(), GetTxPower(), ns3::MakeTraceSourceAccessor(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().

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

Public method used to fire a PhyRxBegin trace. Implemented for encapsulation purposes.

Referenced by StartReceive().

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

Public method used to fire a PhyRxDrop trace. Implemented for encapsulation purposes.

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

Public method used to fire a PhyRxEnd trace. Implemented for encapsulation purposes.

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

Public method used to fire a PhyTxBegin trace. Implemented for encapsulation purposes.

Referenced by Send().

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

Public method used to fire a PhyTxDrop trace. Implemented for encapsulation purposes.

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

Public method used to fire a PhyTxEnd trace. Implemented for encapsulation purposes.

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

References ns3::PacketBurst::GetSize(), ns3::WimaxPhy::GetState(), and NotifyTxBegin().

Referenced by Send().

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

Sends a burst on the channel.

See also:
SendParams

Implements ns3::WimaxPhy.

References Send().

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

Set the bandwidth.

Parameters:
BWthe bandwidth

References ns3::WimaxPhy::SetChannelBandwidth().

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

set the noise figure of the device

Parameters:
nfthe noise figure

Referenced by GetTypeId().

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.

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

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

set the transmission power

Parameters:
txPowerthe transmission power

Referenced by GetTypeId().

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 wich 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

References ns3::Simulator::Cancel(), GetBandwidth(), ns3::SNRToBlockErrorRateRecord::GetI1(), ns3::SNRToBlockErrorRateRecord::GetI2(), ns3::WimaxPhy::GetRxFrequency(), ns3::WimaxPhy::GetScanningFrequency(), ns3::SNRToBlockErrorRateManager::GetSNRToBlockErrorRateRecord(), ns3::WimaxPhy::GetState(), ns3::UniformVariable::GetValue(), ns3::WimaxPhy::IsDuplex(), NotifyRxBegin(), NS_LOG_INFO, ns3::Simulator::Schedule(), ns3::WimaxPhy::SetScanningCallback(), ns3::WimaxPhy::SetSimplex(), and ns3::WimaxPhy::SetState().


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