22 #ifndef SIMPLE_OFDM_WIMAX_PHY_H 
   23 #define SIMPLE_OFDM_WIMAX_PHY_H 
   27 #include "ns3/callback.h" 
   28 #include "ns3/nstime.h" 
   29 #include "ns3/event-id.h" 
   30 #include "ns3/random-variable-stream.h" 
   33 #include "ns3/snr-to-block-error-rate-manager.h" 
   41 class SimpleOfdmWimaxChannel;
 
void SetNoiseFigure(double nf)
set the noise figure of the device 
uint32_t GetCodedFecBlockSize(WimaxPhy::ModulationType modulationType) const 
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 
Simulation virtual time values and global simulation resolution. 
~SimpleOfdmWimaxPhy(void)
Smart pointer class similar to boost::intrusive_ptr. 
void SetSNRToBlockErrorRateTracesPath(char *tracesPath)
Set the path of the repository containing the traces. 
TracedCallback< Ptr< PacketBurst > > m_phyRxEndTrace
The trace source fired when a packet ends the reception process from the medium. 
void EndReceiveFecBlock(uint32_t burstSize, WimaxPhy::ModulationType modulationType, uint8_t direction, uint8_t drop, Ptr< PacketBurst > burst)
void Send(Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType, uint8_t direction)
Sends a burst on the channel. 
double DoGetSamplingFrequency(void) const 
void NotifyRxDrop(Ptr< PacketBurst > burst)
Public method used to fire a PhyRxDrop trace. 
void NotifyRxBegin(Ptr< PacketBurst > burst)
Public method used to fire a PhyRxBegin trace. 
TracedCallback< Ptr< const PacketBurst > > m_traceRx
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
uint32_t m_dataRateQam64_23
Forward calls to a chain of Callback. 
void InitSimpleOfdmWimaxPhy(void)
std::list< bvec > * m_receivedFecBlocks
SNRToBlockErrorRateManager * m_snrToBlockErrorRateManager
void NotifyTxDrop(Ptr< PacketBurst > burst)
Public method used to fire a PhyTxDrop trace. 
Time DoGetTransmissionTime(uint32_t size, WimaxPhy::ModulationType modulationType) const 
uint8_t DoGetFrameDurationCode(void) const 
void NotifyTxBegin(Ptr< PacketBurst > burst)
Public method used to fire a PhyTxBegin trace. 
uint32_t DoGetDataRate(WimaxPhy::ModulationType modulationType) const 
void SetTraceFilePath(std::string path)
double DoGetSamplingFactor(void) const 
TracedCallback< Ptr< PacketBurst > > m_phyTxDropTrace
The trace source fired when the phy layer drops a packet as it tries to transmit it. 
double DoGetGValue(void) const 
void SetBandwidth(uint32_t BW)
Set the bandwidth. 
void CreateFecBlocks(const bvec &buffer, WimaxPhy::ModulationType modulationType)
void EndSendFecBlock(WimaxPhy::ModulationType modulationType, uint8_t direction)
TracedCallback< Ptr< PacketBurst > > m_phyTxBeginTrace
The trace source fired when a packet begins the transmission process on the medium. 
double GetTxGain(void) const 
Ptr< UniformRandomVariable > m_URNG
Provides uniform random variables. 
bvec ConvertBurstToBits(Ptr< const PacketBurst > burst)
void DoSetDataRates(void)
double GetRxGain(void) const 
uint16_t m_nrRecivedFecBlocks
uint32_t m_nrFecBlocksSent
uint16_t DoGetTtg(void) const 
The SendParams class defines the parameters with which Send() function of a particular PHY is called...
Time GetBlockTransmissionTime(WimaxPhy::ModulationType modulationType) const 
Time DoGetFrameDuration(uint8_t frameDurationCode) const 
uint32_t m_dataRateQpsk12
void EndReceive(Ptr< const PacketBurst > burst)
uint16_t DoGetNfft(void) const 
void SetRxGain(double rxgain)
uint32_t m_dataRateQpsk34
Ptr< PacketBurst > m_currentBurst
void NotifyRxEnd(Ptr< PacketBurst > burst)
Public method used to fire a PhyRxEnd trace. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
void StartSendDummyFecBlock(bool isFirstBlock, WimaxPhy::ModulationType modulationType, uint8_t direction)
static TypeId GetTypeId(void)
double GetTxPower(void) const 
void DoDispose(void)
Destructor implementation. 
double GetNoiseFigure(void) const 
uint16_t DoGetRtg(void) const 
uint32_t m_currentBurstSize
void DoAttach(Ptr< WimaxChannel > channel)
Attach the physical layer to a channel. 
void ActivateLoss(bool loss)
if called with true it will enable the loss model 
uint64_t DoGetNrBytes(uint32_t symbols, WimaxPhy::ModulationType modulationType) const 
uint64_t DoGetNrSymbols(uint32_t size, WimaxPhy::ModulationType modulationType) const 
void SetTxGain(double txgain)
void NotifyTxEnd(Ptr< PacketBurst > burst)
Public method used to fire a PhyTxEnd trace. 
uint32_t CalculateDataRate(WimaxPhy::ModulationType modulationType) const 
uint32_t m_dataRateQam64_34
TracedCallback< Ptr< PacketBurst > > m_phyRxBeginTrace
The trace source fired when a packet begins the reception process from the medium. 
std::string GetTraceFilePath(void) const 
void SetTxPower(double txPower)
set the transmission power 
TracedCallback< Ptr< PacketBurst > > m_phyTxEndTrace
The trace source fired when a packet ends the transmission process on the medium. ...
uint32_t m_dataRateBpsk12
uint16_t GetNrBlocks(uint32_t burstSize, WimaxPhy::ModulationType modulationType) const 
uint32_t GetBandwidth(void) const 
uint16_t m_nbErroneousBlock
Ptr< PacketBurst > ConvertBitsToBurst(bvec buffer)
uint32_t m_dataRateQam16_34
void SetBlockParameters(uint32_t burstSize, WimaxPhy::ModulationType modulationType)
WimaxPhy::PhyType GetPhyType(void) const 
returns the type this physical layer 
void GetModulationFecParams(WimaxPhy::ModulationType modulationType, uint8_t &bitsPerSymbol, double &fecCode) const 
uint32_t GetFecBlockSize(WimaxPhy::ModulationType type) const 
void SetReceiveCallback(Callback< void, Ptr< PacketBurst >, Ptr< WimaxConnection > > callback)
set the callback function to call when a burst is received 
This class handles the SNR to BlcER traces. 
void DoSetPhyParameters(void)
uint32_t m_dataRateQam16_12
uint16_t m_nrRemainingBlocksToSend
a unique identifier for an interface. 
TracedCallback< Ptr< PacketBurst > > m_phyRxDropTrace
The trace source fired when the phy layer drops a packet it has received. 
TracedCallback< Ptr< const PacketBurst > > m_traceTx
std::list< bvec > * m_fecBlocks