View | Details | Raw Unified | Return to bug 608
Collapse All | Expand All

(-)a/src/devices/wifi/interference-helper.cc (+8 lines)
 Lines 182-187   Time Link Here 
182
Time 
182
Time 
183
InterferenceHelper::GetEnergyDuration (double energyW)
183
InterferenceHelper::GetEnergyDuration (double energyW)
184
{
184
{
185
  NS_LOG_FUNCTION (this << energyW);
185
  Time now = Simulator::Now ();
186
  Time now = Simulator::Now ();
186
187
187
  // first, we iterate over all events and, each event
188
  // first, we iterate over all events and, each event
 Lines 227-232   Time Link Here 
227
Time
228
Time
228
InterferenceHelper::CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble) const
229
InterferenceHelper::CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble) const
229
{
230
{
231
  NS_LOG_FUNCTION (this << size << payloadMode << preamble);
230
  uint64_t delay = 0;
232
  uint64_t delay = 0;
231
  switch (m_80211_standard) 
233
  switch (m_80211_standard) 
232
  {
234
  {
 Lines 280-285   void Link Here 
280
void 
282
void 
281
InterferenceHelper::AppendEvent (Ptr<InterferenceHelper::Event> event)
283
InterferenceHelper::AppendEvent (Ptr<InterferenceHelper::Event> event)
282
{
284
{
285
  NS_LOG_FUNCTION_NOARGS ();
283
  /* attempt to remove the events which are 
286
  /* attempt to remove the events which are 
284
   * not useful anymore. 
287
   * not useful anymore. 
285
   * i.e.: all events which end _before_
288
   * i.e.: all events which end _before_
 Lines 304-309   double Link Here 
304
double
307
double
305
InterferenceHelper::CalculateSnr (double signal, double noiseInterference, WifiMode mode) const
308
InterferenceHelper::CalculateSnr (double signal, double noiseInterference, WifiMode mode) const
306
{
309
{
310
  NS_LOG_FUNCTION (this << signal << noiseInterference << mode);
307
  // thermal noise at 290K in J/s = W
311
  // thermal noise at 290K in J/s = W
308
  static const double BOLTZMANN = 1.3803e-23;
312
  static const double BOLTZMANN = 1.3803e-23;
309
  // Nt is the power of thermal noise in W
313
  // Nt is the power of thermal noise in W
 Lines 318-323   double Link Here 
318
double
322
double
319
InterferenceHelper::CalculateNoiseInterferenceW (Ptr<InterferenceHelper::Event> event, NiChanges *ni) const
323
InterferenceHelper::CalculateNoiseInterferenceW (Ptr<InterferenceHelper::Event> event, NiChanges *ni) const
320
{
324
{
325
  NS_LOG_FUNCTION (this);
321
  Events::const_iterator i = m_events.begin ();
326
  Events::const_iterator i = m_events.begin ();
322
  double noiseInterference = 0.0;
327
  double noiseInterference = 0.0;
323
  while (i != m_events.end ()) 
328
  while (i != m_events.end ()) 
 Lines 353-358   double Link Here 
353
double
358
double
354
InterferenceHelper::CalculateChunkSuccessRate (double snir, Time duration, WifiMode mode) const
359
InterferenceHelper::CalculateChunkSuccessRate (double snir, Time duration, WifiMode mode) const
355
{
360
{
361
  NS_LOG_FUNCTION (this << snir << duration << mode);
356
  if (duration == NanoSeconds (0)) {
362
  if (duration == NanoSeconds (0)) {
357
    return 1.0;
363
    return 1.0;
358
  }
364
  }
 Lines 365-370   double Link Here 
365
double 
371
double 
366
InterferenceHelper::CalculatePer (Ptr<const InterferenceHelper::Event> event, NiChanges *ni) const
372
InterferenceHelper::CalculatePer (Ptr<const InterferenceHelper::Event> event, NiChanges *ni) const
367
{  
373
{  
374
  NS_LOG_FUNCTION (this);
368
  double psr = 1.0; /* Packet Success Rate */
375
  double psr = 1.0; /* Packet Success Rate */
369
  NiChanges::iterator j = ni->begin ();
376
  NiChanges::iterator j = ni->begin ();
370
  Time previous = (*j).GetTime ();
377
  Time previous = (*j).GetTime ();
 Lines 470-475   struct InterferenceHelper::SnrPer Link Here 
470
struct InterferenceHelper::SnrPer 
477
struct InterferenceHelper::SnrPer 
471
InterferenceHelper::CalculateSnrPer (Ptr<InterferenceHelper::Event> event)
478
InterferenceHelper::CalculateSnrPer (Ptr<InterferenceHelper::Event> event)
472
{
479
{
480
  NS_LOG_FUNCTION (this);
473
  NiChanges ni;
481
  NiChanges ni;
474
  double noiseInterferenceW = CalculateNoiseInterferenceW (event, &ni);
482
  double noiseInterferenceW = CalculateNoiseInterferenceW (event, &ni);
475
  double snr = CalculateSnr (event->GetRxPowerW (),
483
  double snr = CalculateSnr (event->GetRxPowerW (),
(-)a/src/devices/wifi/yans-wifi-phy.cc (+1 lines)
 Lines 324-329   YansWifiPhy::StartReceivePacket (Ptr<Pac Link Here 
324
  Time rxDuration = CalculateTxDuration (packet->GetSize (), txMode, preamble);
324
  Time rxDuration = CalculateTxDuration (packet->GetSize (), txMode, preamble);
325
  Time endRx = Simulator::Now () + rxDuration;
325
  Time endRx = Simulator::Now () + rxDuration;
326
326
327
  NS_LOG_LOGIC ("YansWifiPhy::StartReceivePacket at " << Simulator::Now ());
327
  Ptr<InterferenceHelper::Event> event;
328
  Ptr<InterferenceHelper::Event> event;
328
  event = m_interference.Add (packet->GetSize (), 
329
  event = m_interference.Add (packet->GetSize (), 
329
                              txMode,
330
                              txMode,

Return to bug 608