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
hwmp-reactive-regression.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 IITP RAS
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
* Authors: Kirill Andreev <andreev@iitp.ru>
18
*/
19
#include "ns3/ipv4-interface-container.h"
20
#include "ns3/node-container.h"
21
#include "ns3/nstime.h"
22
#include "ns3/pcap-file.h"
23
#include "ns3/test.h"
24
25
using namespace
ns3
;
26
27
/**
28
* \ingroup dot11s-test
29
*
30
* \brief test for multihop path establishing and path error
31
* procedures
32
* Initiate scenario with 6 stations. Procedure of opening peer link
33
* is the following: (PMP routines are not shown)
34
* \verbatim
35
* 0 1 2 3 4 5
36
* | | | | |<---|---> ARP request (2.002s)
37
* |....|....|....|....|....| ARP requests (continued)
38
* |<---|--->| | | | ARP request
39
* <---|--->| | | | | PREQ } This order is broken
40
* <---|--->| | | | | ARP request} due to BroadcastDca
41
* |<---|--->| | | | PREQ 2.00468s)
42
* |....|....|....|....|....| ARP request
43
* | | | |<---|--->| PREQ (2.00621s)
44
* | | | | |<---| PREP
45
* |....|....|....|....|....| PREP (continued)
46
* |<---| | | | | PREP (2.00808s)
47
* |--->| | | | | ARP reply (2.0084s)
48
* |....|....|....|....|....| ARP replies
49
* | | | | |--->| ARP reply (2.01049s)
50
* | | | | |<---| Data (2.01059s)
51
* |....|....|....|....|....| Data (continued)
52
* |<---| | | | | Data
53
* <---|--->| | | | | ARP request (2.02076s)
54
* |....|....|....|....|....| ARP requests (continued)
55
* | | | | |<---|---> ARP request
56
* | | | | |<---| ARP reply (2.02281s)
57
* |....|....|....|....|....| ARP replies (continued)
58
* |<---| | | | | ARP reply
59
* |--->| | | | | Data
60
* At 5s, station number 3 disappears, and PERR is forwarded from 2 to 0
61
* and from 4 to 5, and station 5 starts path discovery procedure
62
* again:
63
* | |<---| |--->| PERR (one due to beacon loss and one due to TX error)
64
* |<---| | | | PERR
65
* | | | |<---|---> PREQ
66
* | | | <---|--->| PREQ
67
* |....|....|.........|....| Repeated attempts of PREQ
68
* \endverbatim
69
*/
70
71
class
HwmpReactiveRegressionTest
:
public
TestCase
72
{
73
public
:
74
HwmpReactiveRegressionTest
();
75
~HwmpReactiveRegressionTest
()
override
;
76
77
void
DoRun
()
override
;
78
/// Check results function
79
void
CheckResults
();
80
81
private
:
82
/// \internal It is important to have pointers here
83
NodeContainer
*
m_nodes
;
84
/// Simulation time
85
Time
m_time
;
86
Ipv4InterfaceContainer
m_interfaces
;
///< interfaces
87
88
/// Create nodes function
89
void
CreateNodes
();
90
/// Create devices function
91
void
CreateDevices
();
92
/// Install application function
93
void
InstallApplications
();
94
/// Reset position function
95
void
ResetPosition
();
96
97
/// Server-side socket
98
Ptr<Socket>
m_serverSocket
;
99
/// Client-side socket
100
Ptr<Socket>
m_clientSocket
;
101
102
/// sent packets counter
103
uint32_t
m_sentPktsCounter
;
104
105
/**
106
* Send data
107
* \param socket the sending socket
108
*/
109
void
SendData
(
Ptr<Socket>
socket);
110
111
/**
112
* \brief Handle a packet reception.
113
*
114
* This function is called by lower layers.
115
*
116
* \param socket the socket the packet was received to.
117
*/
118
void
HandleReadServer
(
Ptr<Socket>
socket);
119
120
/**
121
* \brief Handle a packet reception.
122
*
123
* This function is called by lower layers.
124
*
125
* \param socket the socket the packet was received to.
126
*/
127
void
HandleReadClient
(
Ptr<Socket>
socket);
128
};
HwmpReactiveRegressionTest
test for multihop path establishing and path error procedures Initiate scenario with 6 stations.
Definition:
hwmp-reactive-regression.h:72
HwmpReactiveRegressionTest::m_nodes
NodeContainer * m_nodes
Definition:
hwmp-reactive-regression.h:83
HwmpReactiveRegressionTest::ResetPosition
void ResetPosition()
Reset position function.
Definition:
hwmp-reactive-regression.cc:162
HwmpReactiveRegressionTest::SendData
void SendData(Ptr< Socket > socket)
Send data.
Definition:
hwmp-reactive-regression.cc:174
HwmpReactiveRegressionTest::CreateDevices
void CreateDevices()
Create devices function.
Definition:
hwmp-reactive-regression.cc:116
HwmpReactiveRegressionTest::m_interfaces
Ipv4InterfaceContainer m_interfaces
interfaces
Definition:
hwmp-reactive-regression.h:86
HwmpReactiveRegressionTest::CreateNodes
void CreateNodes()
Create nodes function.
Definition:
hwmp-reactive-regression.cc:73
HwmpReactiveRegressionTest::HwmpReactiveRegressionTest
HwmpReactiveRegressionTest()
Definition:
hwmp-reactive-regression.cc:42
HwmpReactiveRegressionTest::CheckResults
void CheckResults()
Check results function.
Definition:
hwmp-reactive-regression.cc:153
HwmpReactiveRegressionTest::m_clientSocket
Ptr< Socket > m_clientSocket
Client-side socket.
Definition:
hwmp-reactive-regression.h:100
HwmpReactiveRegressionTest::HandleReadServer
void HandleReadServer(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-reactive-regression.cc:189
HwmpReactiveRegressionTest::m_sentPktsCounter
uint32_t m_sentPktsCounter
sent packets counter
Definition:
hwmp-reactive-regression.h:103
HwmpReactiveRegressionTest::~HwmpReactiveRegressionTest
~HwmpReactiveRegressionTest() override
Definition:
hwmp-reactive-regression.cc:50
HwmpReactiveRegressionTest::m_time
Time m_time
Simulation time.
Definition:
hwmp-reactive-regression.h:85
HwmpReactiveRegressionTest::HandleReadClient
void HandleReadClient(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-reactive-regression.cc:203
HwmpReactiveRegressionTest::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
hwmp-reactive-regression.cc:56
HwmpReactiveRegressionTest::m_serverSocket
Ptr< Socket > m_serverSocket
Server-side socket.
Definition:
hwmp-reactive-regression.h:98
HwmpReactiveRegressionTest::InstallApplications
void InstallApplications()
Install application function.
Definition:
hwmp-reactive-regression.cc:92
ns3::Ipv4InterfaceContainer
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Definition:
ipv4-interface-container.h:56
ns3::NodeContainer
keep track of a set of node pointers.
Definition:
node-container.h:40
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:77
ns3::TestCase
encapsulates test code
Definition:
test.h:1061
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:105
uint32_t
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
mesh
test
dot11s
hwmp-reactive-regression.h
Generated on Tue May 28 2024 23:38:13 for ns-3 by
1.9.6