NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn-rtt-estimator.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
//
3
// Copyright (c) 2006 Georgia Tech Research Corporation
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: Rajib Bhattacharjea<raj.b@gatech.edu>
19
//
20
21
// Georgia Tech Network Simulator - Round Trip Time Estimation Class
22
// George F. Riley. Georgia Tech, Spring 2002
23
24
// THIS IS A COPY OF rtt-estimator.h from internet module with minor modifications
25
26
#ifndef NDN_RTT_ESTIMATOR_H
27
#define NDN_RTT_ESTIMATOR_H
28
29
#include <deque>
30
#include "ns3/sequence-number.h"
31
#include "ns3/nstime.h"
32
#include "ns3/object.h"
33
34
namespace
ns3
{
35
36
namespace
ndn
{
37
43
class
RttHistory
{
44
public
:
45
RttHistory
(SequenceNumber32 s, uint32_t c, Time t);
46
RttHistory
(
const
RttHistory
& h);
// Copy constructor
47
public
:
48
SequenceNumber32
seq
;
// First sequence number in packet sent
49
uint32_t
count
;
// Number of bytes sent
50
Time
time
;
// Time this one was sent
51
bool
retx
;
// True if this has been retransmitted
52
};
53
54
typedef
std::deque<RttHistory>
RttHistory_t
;
55
61
class
RttEstimator
:
public
Object
{
62
public
:
63
static
TypeId
64
GetTypeId(
void
);
65
66
RttEstimator
();
67
RttEstimator
(
const
RttEstimator
&);
68
69
virtual
~
RttEstimator
();
70
71
virtual
TypeId
72
GetInstanceTypeId(
void
)
const
;
73
79
virtual
void
80
SentSeq(SequenceNumber32
seq
, uint32_t
size
);
81
87
virtual
Time
88
AckSeq(SequenceNumber32 ackSeq);
89
93
virtual
void
94
ClearSent();
95
100
virtual
void
101
Measurement(Time t) = 0;
102
107
virtual
Time
108
RetransmitTimeout() = 0;
109
110
virtual
Ptr<RttEstimator>
111
Copy()
const
= 0;
112
116
virtual
void
117
IncreaseMultiplier();
118
122
virtual
void
123
ResetMultiplier();
124
128
virtual
void
129
Reset();
130
135
void
136
SetMinRto(Time minRto);
137
142
Time
143
GetMinRto(
void
)
const
;
144
149
void
150
SetMaxRto(Time maxRto);
151
156
Time
157
GetMaxRto(
void
)
const
;
158
163
void
164
SetCurrentEstimate(Time estimate);
165
170
Time
171
GetCurrentEstimate(
void
)
const
;
172
173
private
:
174
SequenceNumber32 m_next;
// Next expected sequence to be sent
175
uint16_t m_maxMultiplier;
176
Time m_initialEstimatedRtt;
177
178
protected
:
179
Time
m_currentEstimatedRtt
;
// Current estimate
180
Time
m_minRto
;
// minimum value of the timeout
181
Time
m_maxRto
;
// maximum value of the timeout
182
uint32_t
m_nSamples
;
// Number of samples
183
uint16_t
m_multiplier
;
// RTO Multiplier
184
RttHistory_t
m_history
;
// List of sent packet
185
};
186
187
}
// namespace ndn
188
189
}
// namespace ns3
190
191
#endif
/* RTT_ESTIMATOR_H */
ns3::ndn::RttHistory::RttHistory
RttHistory(SequenceNumber32 s, uint32_t c, Time t)
Definition:
ndn-rtt-estimator.cpp:106
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ns3::ndn::RttHistory::time
Time time
Definition:
ndn-rtt-estimator.hpp:50
ns3::ndn::RttEstimator::m_minRto
Time m_minRto
Definition:
ndn-rtt-estimator.hpp:180
ns3::ndn::RttHistory_t
std::deque< RttHistory > RttHistory_t
Definition:
ndn-rtt-estimator.hpp:54
ns3::ndn::RttEstimator::m_multiplier
uint16_t m_multiplier
Definition:
ndn-rtt-estimator.hpp:183
ns3
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-app-link-service.cpp:32
ns3::ndn::RttEstimator::m_nSamples
uint32_t m_nSamples
Definition:
ndn-rtt-estimator.hpp:182
ns3::ndn::RttEstimator::m_maxRto
Time m_maxRto
Definition:
ndn-rtt-estimator.hpp:181
ns3::ndn::RttEstimator::m_history
RttHistory_t m_history
Definition:
ndn-rtt-estimator.hpp:184
ns3::ndn::RttEstimator
Base class for all RTT Estimators.
Definition:
ndn-rtt-estimator.hpp:61
ns3::ndn::RttHistory::retx
bool retx
Definition:
ndn-rtt-estimator.hpp:51
ns3::ndn::RttHistory
Helper class to store RTT measurements.
Definition:
ndn-rtt-estimator.hpp:43
nonstd::span_lite::size
span_constexpr std::size_t size(span< T, Extent > const &spn)
Definition:
span-lite.hpp:1535
RttEstimator
ndn RttEstimator
Definition:
ndn-rtt-estimator.cpp:38
ns3::ndn::RttEstimator::m_currentEstimatedRtt
Time m_currentEstimatedRtt
Definition:
ndn-rtt-estimator.hpp:179
ns3::ndn::RttHistory::count
uint32_t count
Definition:
ndn-rtt-estimator.hpp:49
ns3::Object
ns3::ndn::RttHistory::seq
SequenceNumber32 seq
Definition:
ndn-rtt-estimator.hpp:48
ndnSIM
utils
ndn-rtt-estimator.hpp
Generated on Fri May 6 2022 12:34:15 for ndnSIM by
1.8.13