src/devices/wifi/interference-helper.h
changeset 4681 8558474b6149
parent 4680 a52c39181dd4
child 5189 8fcdf87a790a
equal deleted inserted replaced
4680:a52c39181dd4 4681:8558474b6149
    67   };
    67   };
    68 
    68 
    69   InterferenceHelper ();
    69   InterferenceHelper ();
    70   ~InterferenceHelper ();
    70   ~InterferenceHelper ();
    71 
    71 
    72   void Configure80211aParameters (void);
       
    73   void Configure80211bParameters (void);
       
    74   void Configure80211_10MhzParameters (void);
       
    75   void Configure80211_5MhzParameters (void);
       
    76   void SetNoiseFigure (double value);
    72   void SetNoiseFigure (double value);
    77   void SetErrorRateModel (Ptr<ErrorRateModel> rate);
    73   void SetErrorRateModel (Ptr<ErrorRateModel> rate);
    78 
    74 
    79   double GetNoiseFigure (void) const;
    75   double GetNoiseFigure (void) const;
    80   Ptr<ErrorRateModel> GetErrorRateModel (void) const;
    76   Ptr<ErrorRateModel> GetErrorRateModel (void) const;
    85    * \returns the expected amount of time the observed 
    81    * \returns the expected amount of time the observed 
    86    *          energy on the medium will be higher than
    82    *          energy on the medium will be higher than
    87    *          the requested threshold.
    83    *          the requested threshold.
    88    */
    84    */
    89   Time GetEnergyDuration (double energyW);
    85   Time GetEnergyDuration (double energyW);
    90   Time CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble) const;
    86 
       
    87   
       
    88   static WifiMode GetPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble);
       
    89   static uint32_t GetPlcpHeaderDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble);
       
    90   static uint32_t GetPlcpPreambleDurationMicroSeconds (WifiMode mode, WifiPreamble preamble);
       
    91   static uint32_t GetPayloadDurationMicroSeconds (uint32_t size, WifiMode payloadMode);
       
    92   static Time CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble);
    91   Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode, 
    93   Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode, 
    92 				      enum WifiPreamble preamble,
    94 				      enum WifiPreamble preamble,
    93 				      Time duration, double rxPower);
    95 				      Time duration, double rxPower);
    94 
    96 
    95   struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event);
    97   struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event);
   114   double CalculateSnr (double signal, double noiseInterference, WifiMode mode) const;
   116   double CalculateSnr (double signal, double noiseInterference, WifiMode mode) const;
   115   double CalculateChunkSuccessRate (double snir, Time delay, WifiMode mode) const;
   117   double CalculateChunkSuccessRate (double snir, Time delay, WifiMode mode) const;
   116   double CalculatePer (Ptr<const Event> event, NiChanges *ni) const;
   118   double CalculatePer (Ptr<const Event> event, NiChanges *ni) const;
   117   Time GetMaxPacketDuration (void) const;
   119   Time GetMaxPacketDuration (void) const;
   118 
   120 
   119   uint64_t m_plcpLongPreambleDelayUs;
       
   120   uint64_t m_plcpShortPreambleDelayUs;
       
   121   WifiMode m_longPlcpHeaderMode;
       
   122   WifiMode m_shortPlcpHeaderMode;
       
   123   uint32_t m_plcpHeaderLength;
       
   124   Time m_maxPacketDuration;
   121   Time m_maxPacketDuration;
   125   double m_noiseFigure; /**< noise figure (linear) */
   122   double m_noiseFigure; /**< noise figure (linear) */
   126   Events m_events;
   123   Events m_events;
   127   enum WifiPhyStandard m_80211_standard;
       
   128   Ptr<ErrorRateModel> m_errorRateModel;
   124   Ptr<ErrorRateModel> m_errorRateModel;
   129 };
   125 };
   130 
   126 
   131 } // namespace ns3
   127 } // namespace ns3
   132 
   128