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-proactive-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
20
#include "ns3/ipv4-interface-container.h"
21
#include "ns3/node-container.h"
22
#include "ns3/nstime.h"
23
#include "ns3/pcap-file.h"
24
#include "ns3/test.h"
25
26
using namespace
ns3
;
27
28
/**
29
* \ingroup dot11s-test
30
*
31
* \brief There are 5 stations set into a row, the center station is root.
32
* Regression test indicates that traffic goes from the first to the
33
* last stations without reactive route discovery procedure
34
* \verbatim
35
* Src Root Dst
36
* (node ID) 0 1 2 3 4
37
* (MAC) 00:01 00:02 00:03 00:04 00:05
38
* | |<--------|-------->| | Proactive PREQ
39
* | |-------->| | | PREP
40
* | | |<--------| | PREP
41
* |<--------|-------->|<--------|-------->| Proactive PREQ
42
* |-------->| | |<--------| PREP
43
* | |-------->| | | PREP
44
* | | |<--------| | PREP
45
* <--------|-------->| | |<--------|--------> Proactive PREQ
46
* Note, that at this moment all routes are known, and no reactive
47
* path discovery procedure shall be initiated
48
* | | |<--------|-------->| ARP request
49
* |.........|.........|.........|.........|
50
* <--------|-------->| | | | ARP request
51
* |-------->| | | | ARP reply
52
* |.........|.........|.........|.........|
53
* | | | |-------->| ARP reply
54
* | | | |<--------| DATA
55
* ^
56
* Further data is forwarded by proactive path
57
* \endverbatim
58
*
59
*/
60
class
HwmpProactiveRegressionTest
:
public
TestCase
61
{
62
public
:
63
HwmpProactiveRegressionTest
();
64
~HwmpProactiveRegressionTest
()
override
;
65
66
void
DoRun
()
override
;
67
/// Check results function
68
void
CheckResults
();
69
70
private
:
71
/// \internal It is important to have pointers here
72
NodeContainer
*
m_nodes
;
73
/// Simulation time
74
Time
m_time
;
75
Ipv4InterfaceContainer
m_interfaces
;
///< interfaces
76
77
/// Create nodes function
78
void
CreateNodes
();
79
/// Create devices function
80
void
CreateDevices
();
81
/// Install application function
82
void
InstallApplications
();
83
/// Reset position function
84
void
ResetPosition
();
85
86
/// Server-side socket
87
Ptr<Socket>
m_serverSocket
;
88
/// Client-side socket
89
Ptr<Socket>
m_clientSocket
;
90
91
/// sent packets counter
92
uint32_t
m_sentPktsCounter
;
93
94
/**
95
* Send data
96
* \param socket the sending socket
97
*/
98
void
SendData
(
Ptr<Socket>
socket);
99
100
/**
101
* \brief Handle a packet reception.
102
*
103
* This function is called by lower layers.
104
*
105
* \param socket the socket the packet was received to.
106
*/
107
void
HandleReadServer
(
Ptr<Socket>
socket);
108
109
/**
110
* \brief Handle a packet reception.
111
*
112
* This function is called by lower layers.
113
*
114
* \param socket the socket the packet was received to.
115
*/
116
void
HandleReadClient
(
Ptr<Socket>
socket);
117
};
HwmpProactiveRegressionTest
There are 5 stations set into a row, the center station is root.
Definition:
hwmp-proactive-regression.h:61
HwmpProactiveRegressionTest::SendData
void SendData(Ptr< Socket > socket)
Send data.
Definition:
hwmp-proactive-regression.cc:175
HwmpProactiveRegressionTest::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
hwmp-proactive-regression.cc:59
HwmpProactiveRegressionTest::HandleReadClient
void HandleReadClient(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-proactive-regression.cc:204
HwmpProactiveRegressionTest::m_clientSocket
Ptr< Socket > m_clientSocket
Client-side socket.
Definition:
hwmp-proactive-regression.h:89
HwmpProactiveRegressionTest::m_time
Time m_time
Simulation time.
Definition:
hwmp-proactive-regression.h:74
HwmpProactiveRegressionTest::m_sentPktsCounter
uint32_t m_sentPktsCounter
sent packets counter
Definition:
hwmp-proactive-regression.h:92
HwmpProactiveRegressionTest::~HwmpProactiveRegressionTest
~HwmpProactiveRegressionTest() override
Definition:
hwmp-proactive-regression.cc:53
HwmpProactiveRegressionTest::HandleReadServer
void HandleReadServer(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-proactive-regression.cc:190
HwmpProactiveRegressionTest::m_nodes
NodeContainer * m_nodes
Definition:
hwmp-proactive-regression.h:72
HwmpProactiveRegressionTest::HwmpProactiveRegressionTest
HwmpProactiveRegressionTest()
Definition:
hwmp-proactive-regression.cc:45
HwmpProactiveRegressionTest::InstallApplications
void InstallApplications()
Install application function.
Definition:
hwmp-proactive-regression.cc:100
HwmpProactiveRegressionTest::CreateDevices
void CreateDevices()
Create devices function.
Definition:
hwmp-proactive-regression.cc:124
HwmpProactiveRegressionTest::CheckResults
void CheckResults()
Check results function.
Definition:
hwmp-proactive-regression.cc:166
HwmpProactiveRegressionTest::m_interfaces
Ipv4InterfaceContainer m_interfaces
interfaces
Definition:
hwmp-proactive-regression.h:75
HwmpProactiveRegressionTest::ResetPosition
void ResetPosition()
Reset position function.
HwmpProactiveRegressionTest::m_serverSocket
Ptr< Socket > m_serverSocket
Server-side socket.
Definition:
hwmp-proactive-regression.h:87
HwmpProactiveRegressionTest::CreateNodes
void CreateNodes()
Create nodes function.
Definition:
hwmp-proactive-regression.cc:77
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-proactive-regression.h
Generated on Tue May 28 2024 23:38:12 for ns-3 by
1.9.6