A Discrete-Event Network Simulator
API
wifi-remote-station-info.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006,2007 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #include "ns3/simulator.h"
23 
24 namespace ns3 {
25 
27  : m_memoryTime (Seconds (1.0)),
28  m_lastUpdate (Seconds (0.0)),
29  m_failAvg (0.0)
30 {
31 }
32 
34 {
35 }
36 
37 double
39 {
40  double retval = std::exp (static_cast<double> (m_lastUpdate.GetMicroSeconds () - Simulator::Now ().GetMicroSeconds ()) / m_memoryTime.GetMicroSeconds ());
42  return retval;
43 }
44 
45 void
47 {
48  double coefficient = CalculateAveragingCoefficient ();
49  m_failAvg = static_cast<double> (retryCounter) / (1 + retryCounter) * (1 - coefficient) + coefficient * m_failAvg;
50 }
51 
52 void
54 {
55  double coefficient = CalculateAveragingCoefficient ();
56  m_failAvg = (1 - coefficient) + coefficient * m_failAvg;
57 }
58 
59 double
61 {
62  return m_failAvg;
63 }
64 
65 } //namespace ns3
Time m_memoryTime
averaging coefficient depends on the memory time
double m_failAvg
moving percentage of failed frames
Time m_lastUpdate
when last update has occurred
double CalculateAveragingCoefficient()
Calculate averaging coefficient for frame error rate.
double GetFrameErrorRate() const
Return frame error rate (probability that frame is corrupted due to transmission error).
void NotifyTxSuccess(uint32_t retryCounter)
Updates average frame error rate when data or RTS was transmitted successfully.
int64_t GetMicroSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
Definition: nstime.h:387
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static Time Now(void)
Return the current simulation virtual time.
Definition: simulator.cc:195
void NotifyTxFailed()
Updates average frame error rate when final data or RTS has failed.
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition: nstime.h:1278