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