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 
 
keep track of time values and allow control of 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
 
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)
 
void NotifyRxBegin(Ptr< PacketBurst > burst)
 
TracedCallback< Ptr< const PacketBurst > > m_traceRx
 
int64_t AssignStreams(int64_t stream)
 
uint32_t m_dataRateQam64_23
 
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
 
void InitSimpleOfdmWimaxPhy(void)
 
std::list< bvec > * m_receivedFecBlocks
 
SNRToBlockErrorRateManager * m_snrToBlockErrorRateManager
 
void NotifyTxDrop(Ptr< PacketBurst > burst)
 
Time DoGetTransmissionTime(uint32_t size, WimaxPhy::ModulationType modulationType) const 
 
uint8_t DoGetFrameDurationCode(void) const 
 
void NotifyTxBegin(Ptr< PacketBurst > burst)
 
uint32_t DoGetDataRate(WimaxPhy::ModulationType modulationType) const 
 
void SetTraceFilePath(std::string path)
 
double DoGetSamplingFactor(void) const 
 
TracedCallback< Ptr< PacketBurst > > m_phyTxDropTrace
 
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
 
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)
 
void StartSendDummyFecBlock(bool isFirstBlock, WimaxPhy::ModulationType modulationType, uint8_t direction)
 
static TypeId GetTypeId(void)
 
double GetTxPower(void) const 
 
double GetNoiseFigure(void) const 
 
uint16_t DoGetRtg(void) const 
 
uint32_t m_currentBurstSize
 
void DoAttach(Ptr< WimaxChannel > 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)
 
uint32_t CalculateDataRate(WimaxPhy::ModulationType modulationType) const 
 
uint32_t m_dataRateQam64_34
 
TracedCallback< Ptr< PacketBurst > > m_phyRxBeginTrace
 
std::string GetTraceFilePath(void) const 
 
void SetTxPower(double txPower)
set the transmission power 
 
TracedCallback< Ptr< PacketBurst > > m_phyTxEndTrace
 
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. A path to a repository containing trace files should be p...
 
void DoSetPhyParameters(void)
 
uint32_t m_dataRateQam16_12
 
uint16_t m_nrRemainingBlocksToSend
 
a unique identifier for an interface. 
 
TracedCallback< Ptr< PacketBurst > > m_phyRxDropTrace
 
TracedCallback< Ptr< const PacketBurst > > m_traceTx
 
std::list< bvec > * m_fecBlocks