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