A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
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
20
#include "
wifi-remote-station-info.h
"
21
22
#include "ns3/simulator.h"
23
24
namespace
ns3
25
{
26
27
WifiRemoteStationInfo::WifiRemoteStationInfo
()
28
: m_memoryTime(
Seconds
(1.0)),
29
m_lastUpdate(
Seconds
(0.0)),
30
m_failAvg(0.0)
31
{
32
}
33
34
WifiRemoteStationInfo::~WifiRemoteStationInfo
()
35
{
36
}
37
38
double
39
WifiRemoteStationInfo::CalculateAveragingCoefficient
()
40
{
41
double
retval = std::exp(((
m_lastUpdate
-
Now
()) /
m_memoryTime
).GetDouble());
42
m_lastUpdate
=
Simulator::Now
();
43
return
retval;
44
}
45
46
void
47
WifiRemoteStationInfo::NotifyTxSuccess
(
uint32_t
retryCounter)
48
{
49
double
coefficient =
CalculateAveragingCoefficient
();
50
m_failAvg
=
static_cast<
double
>
(retryCounter) / (1 + retryCounter) * (1 - coefficient) +
51
coefficient *
m_failAvg
;
52
}
53
54
void
55
WifiRemoteStationInfo::NotifyTxFailed
()
56
{
57
double
coefficient =
CalculateAveragingCoefficient
();
58
m_failAvg
= (1 - coefficient) + coefficient *
m_failAvg
;
59
}
60
61
double
62
WifiRemoteStationInfo::GetFrameErrorRate
()
const
63
{
64
return
m_failAvg
;
65
}
66
67
}
// namespace ns3
ns3::Simulator::Now
static Time Now()
Return the current simulation virtual time.
Definition:
simulator.cc:199
ns3::WifiRemoteStationInfo::m_failAvg
double m_failAvg
moving percentage of failed frames
Definition:
wifi-remote-station-info.h:71
ns3::WifiRemoteStationInfo::m_lastUpdate
Time m_lastUpdate
when last update has occurred
Definition:
wifi-remote-station-info.h:70
ns3::WifiRemoteStationInfo::WifiRemoteStationInfo
WifiRemoteStationInfo()
Definition:
wifi-remote-station-info.cc:27
ns3::WifiRemoteStationInfo::CalculateAveragingCoefficient
double CalculateAveragingCoefficient()
Calculate averaging coefficient for frame error rate.
Definition:
wifi-remote-station-info.cc:39
ns3::WifiRemoteStationInfo::NotifyTxSuccess
void NotifyTxSuccess(uint32_t retryCounter)
Updates average frame error rate when data or RTS was transmitted successfully.
Definition:
wifi-remote-station-info.cc:47
ns3::WifiRemoteStationInfo::~WifiRemoteStationInfo
virtual ~WifiRemoteStationInfo()
Definition:
wifi-remote-station-info.cc:34
ns3::WifiRemoteStationInfo::m_memoryTime
Time m_memoryTime
averaging coefficient depends on the memory time
Definition:
wifi-remote-station-info.h:69
ns3::WifiRemoteStationInfo::GetFrameErrorRate
double GetFrameErrorRate() const
Return frame error rate (probability that frame is corrupted due to transmission error).
Definition:
wifi-remote-station-info.cc:62
ns3::WifiRemoteStationInfo::NotifyTxFailed
void NotifyTxFailed()
Updates average frame error rate when final data or RTS has failed.
Definition:
wifi-remote-station-info.cc:55
uint32_t
ns3::Now
Time Now()
create an ns3::Time instance which contains the current simulation time.
Definition:
simulator.cc:296
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition:
nstime.h:1336
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
wifi-remote-station-info.h
src
wifi
model
wifi-remote-station-info.cc
Generated on Sun Jul 2 2023 18:22:14 for ns-3 by
1.9.6