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-target-flags-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 This is a test for intermediate reply and saving routing
32
* information about neighbour. 4 stations and 3 UDP ping streams are initiated.
33
* \verbatim
34
* <-----------|-----------> Broadcast frame
35
* |----------->| Unicast frame
36
* (Node ID) 0 1 2 3
37
* (MAC addr) 10 11 12 13
38
* | |<-----------|----------->| ARP request (12 asks who has 10)
39
* | | |<-----------|-----------> ARP request
40
* |<-----------|----------->| | ARP request
41
* <-----------|----------->| | | PREQ
42
* |<-----------|----------->| | PREQ
43
* | |<-----------| | PREP
44
* |<-----------| | | PREP
45
* |----------->| | | ARP reply
46
* | |----------->| | ARP REPLY
47
* | |<-----------| | Data
48
* |............|............|............|
49
* |<-----------|----------->| | ARP request (11 asks who has 10)
50
* |............|............|............|
51
* |----------->| | | ARP reply
52
* ^ Note, that this arp reply goes without route
53
* discovery procedure, because route is known from
54
* previous PREQ/PREP exchange
55
* |<-----------| | | DATA
56
* |............|............|............|
57
* <-----------|----------->| | | ARP request (10 asks who has 13)
58
* |............|............|............|
59
* | | |<-----------|-----------> PREQ (13 asks about 10) DO=0
60
* RF=1 | | |----------->| PREP (intermediate reply - 12 knows
61
* about 10) | |<-----------|----------->| PREQ DO=1 RF=0
62
* |............|............|............|
63
* |----------->| | | PREP
64
* | |----------->| | PREP
65
* | | |----------->| PREP
66
* \endverbatim
67
*/
68
class
HwmpDoRfRegressionTest
:
public
TestCase
69
{
70
public
:
71
HwmpDoRfRegressionTest
();
72
~HwmpDoRfRegressionTest
()
override
;
73
74
void
DoRun
()
override
;
75
/// Check results function
76
void
CheckResults
();
77
78
private
:
79
/// \internal It is important to have pointers here
80
NodeContainer
*
m_nodes
;
81
/// Simulation time
82
Time
m_time
;
83
Ipv4InterfaceContainer
m_interfaces
;
///< interfaces
84
85
/// Create nodes function
86
void
CreateNodes
();
87
/// Create devices function
88
void
CreateDevices
();
89
/// Install application function
90
void
InstallApplications
();
91
/// Reset position function
92
void
ResetPosition
();
93
94
/// Server-side socket
95
Ptr<Socket>
m_serverSocketA
;
96
/// Server-side socket
97
Ptr<Socket>
m_serverSocketB
;
98
/// Client-side socket
99
Ptr<Socket>
m_clientSocketA
;
100
/// Client-side socket
101
Ptr<Socket>
m_clientSocketB
;
102
/// Client-side socket
103
Ptr<Socket>
m_clientSocketC
;
104
105
/// sent packets counter A
106
uint32_t
m_sentPktsCounterA
;
107
/// sent packets counter B
108
uint32_t
m_sentPktsCounterB
;
109
/// sent packets counter C
110
uint32_t
m_sentPktsCounterC
;
111
112
/**
113
* Send data A
114
* \param socket the sending socket
115
*/
116
void
SendDataA
(
Ptr<Socket>
socket);
117
118
/**
119
* Send data B
120
* \param socket the sending socket
121
*/
122
void
SendDataB
(
Ptr<Socket>
socket);
123
124
/**
125
* Send data C
126
* \param socket the sending socket
127
*/
128
void
SendDataC
(
Ptr<Socket>
socket);
129
130
/**
131
* \brief Handle a packet reception.
132
*
133
* This function is called by lower layers.
134
*
135
* \param socket the socket the packet was received to.
136
*/
137
void
HandleReadServer
(
Ptr<Socket>
socket);
138
139
/**
140
* \brief Handle a packet reception.
141
*
142
* This function is called by lower layers.
143
*
144
* \param socket the socket the packet was received to.
145
*/
146
void
HandleReadClient
(
Ptr<Socket>
socket);
147
};
HwmpDoRfRegressionTest
This is a test for intermediate reply and saving routing information about neighbour.
Definition:
hwmp-target-flags-regression.h:69
HwmpDoRfRegressionTest::ResetPosition
void ResetPosition()
Reset position function.
HwmpDoRfRegressionTest::SendDataA
void SendDataA(Ptr< Socket > socket)
Send data A.
Definition:
hwmp-target-flags-regression.cc:200
HwmpDoRfRegressionTest::m_time
Time m_time
Simulation time.
Definition:
hwmp-target-flags-regression.h:82
HwmpDoRfRegressionTest::HandleReadClient
void HandleReadClient(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-target-flags-regression.cc:259
HwmpDoRfRegressionTest::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
hwmp-target-flags-regression.cc:61
HwmpDoRfRegressionTest::~HwmpDoRfRegressionTest
~HwmpDoRfRegressionTest() override
Definition:
hwmp-target-flags-regression.cc:55
HwmpDoRfRegressionTest::m_serverSocketA
Ptr< Socket > m_serverSocketA
Server-side socket.
Definition:
hwmp-target-flags-regression.h:95
HwmpDoRfRegressionTest::CreateDevices
void CreateDevices()
Create devices function.
Definition:
hwmp-target-flags-regression.cc:154
HwmpDoRfRegressionTest::SendDataC
void SendDataC(Ptr< Socket > socket)
Send data C.
Definition:
hwmp-target-flags-regression.cc:230
HwmpDoRfRegressionTest::m_sentPktsCounterA
uint32_t m_sentPktsCounterA
sent packets counter A
Definition:
hwmp-target-flags-regression.h:106
HwmpDoRfRegressionTest::CheckResults
void CheckResults()
Check results function.
Definition:
hwmp-target-flags-regression.cc:191
HwmpDoRfRegressionTest::m_nodes
NodeContainer * m_nodes
Definition:
hwmp-target-flags-regression.h:80
HwmpDoRfRegressionTest::m_serverSocketB
Ptr< Socket > m_serverSocketB
Server-side socket.
Definition:
hwmp-target-flags-regression.h:97
HwmpDoRfRegressionTest::SendDataB
void SendDataB(Ptr< Socket > socket)
Send data B.
Definition:
hwmp-target-flags-regression.cc:215
HwmpDoRfRegressionTest::m_sentPktsCounterC
uint32_t m_sentPktsCounterC
sent packets counter C
Definition:
hwmp-target-flags-regression.h:110
HwmpDoRfRegressionTest::m_clientSocketA
Ptr< Socket > m_clientSocketA
Client-side socket.
Definition:
hwmp-target-flags-regression.h:99
HwmpDoRfRegressionTest::HandleReadServer
void HandleReadServer(Ptr< Socket > socket)
Handle a packet reception.
Definition:
hwmp-target-flags-regression.cc:245
HwmpDoRfRegressionTest::InstallApplications
void InstallApplications()
Install application function.
Definition:
hwmp-target-flags-regression.cc:102
HwmpDoRfRegressionTest::m_interfaces
Ipv4InterfaceContainer m_interfaces
interfaces
Definition:
hwmp-target-flags-regression.h:83
HwmpDoRfRegressionTest::HwmpDoRfRegressionTest
HwmpDoRfRegressionTest()
Definition:
hwmp-target-flags-regression.cc:45
HwmpDoRfRegressionTest::CreateNodes
void CreateNodes()
Create nodes function.
Definition:
hwmp-target-flags-regression.cc:79
HwmpDoRfRegressionTest::m_sentPktsCounterB
uint32_t m_sentPktsCounterB
sent packets counter B
Definition:
hwmp-target-flags-regression.h:108
HwmpDoRfRegressionTest::m_clientSocketC
Ptr< Socket > m_clientSocketC
Client-side socket.
Definition:
hwmp-target-flags-regression.h:103
HwmpDoRfRegressionTest::m_clientSocketB
Ptr< Socket > m_clientSocketB
Client-side socket.
Definition:
hwmp-target-flags-regression.h:101
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-target-flags-regression.h
Generated on Tue May 28 2024 23:38:13 for ns-3 by
1.9.6