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
flame-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 mesh-test
30
* \defgroup flame-test flame sub-module tests
31
*/
32
33
/**
34
* \ingroup flame-test
35
*
36
* \brief FLAME protocol regression test of three stations:
37
* \verbatim
38
* <-----------|-----------> Broadcast frame
39
* |----------->| Unicast frame
40
* Source Destination
41
* (node ID) 2 1 0
42
* <-----------|----------->| | ARP request
43
* |<-----------|----------->| ARP request
44
* | |<-----------| ARP reply
45
* |<-----------| | ARP reply
46
* |----------->| | Data
47
* | |----------->| Data
48
* | |<-----------|-----------> PATH_UPDATE (no broadcast was sent)
49
* |<-----------|----------->| PATH_UPDATE
50
* <-----------|----------->| | PATH_UPDATE
51
* | |<-----------|-----------> ARP request
52
* |<-----------|----------->| ARP request
53
* <-----------|----------->| | ARP request
54
* |----------->| | ARP reply
55
* | |----------->| ARP reply
56
* | |<-----------| Data
57
* |<-----------| | Data
58
* |............|............|
59
* After five seconds data is transmitted again as
60
* broadcast, and PATH_UPDATE is sent
61
* \endverbatim
62
*/
63
class
FlameRegressionTest
:
public
TestCase
64
{
65
public
:
66
FlameRegressionTest
();
67
~FlameRegressionTest
()
override
;
68
69
void
DoRun
()
override
;
70
/// Check results function
71
void
CheckResults
();
72
73
private
:
74
/// \internal It is important to have pointers here
75
NodeContainer
*
m_nodes
;
76
/// Simulation time
77
Time
m_time
;
78
/// Needed to install applications
79
Ipv4InterfaceContainer
m_interfaces
;
80
81
/// Create nodes function
82
void
CreateNodes
();
83
/// Create devices function
84
void
CreateDevices
();
85
/// Install application function
86
void
InstallApplications
();
87
88
/// Server-side socket
89
Ptr<Socket>
m_serverSocket
;
90
/// Client-side socket
91
Ptr<Socket>
m_clientSocket
;
92
93
/// sent packets counter
94
uint32_t
m_sentPktsCounter
;
95
96
/**
97
* Send data
98
* \param socket the sending socket
99
*/
100
void
SendData
(
Ptr<Socket>
socket);
101
102
/**
103
* \brief Handle a packet reception.
104
*
105
* This function is called by lower layers.
106
*
107
* \param socket the socket the packet was received to.
108
*/
109
void
HandleReadServer
(
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
HandleReadClient
(
Ptr<Socket>
socket);
119
};
FlameRegressionTest
FLAME protocol regression test of three stations:
Definition:
flame-regression.h:64
FlameRegressionTest::m_time
Time m_time
Simulation time.
Definition:
flame-regression.h:77
FlameRegressionTest::~FlameRegressionTest
~FlameRegressionTest() override
Definition:
flame-regression.cc:51
FlameRegressionTest::FlameRegressionTest
FlameRegressionTest()
Definition:
flame-regression.cc:43
FlameRegressionTest::CheckResults
void CheckResults()
Check results function.
Definition:
flame-regression.cc:161
FlameRegressionTest::InstallApplications
void InstallApplications()
Install application function.
Definition:
flame-regression.cc:139
FlameRegressionTest::CreateNodes
void CreateNodes()
Create nodes function.
Definition:
flame-regression.cc:75
FlameRegressionTest::m_clientSocket
Ptr< Socket > m_clientSocket
Client-side socket.
Definition:
flame-regression.h:91
FlameRegressionTest::m_nodes
NodeContainer * m_nodes
Definition:
flame-regression.h:75
FlameRegressionTest::SendData
void SendData(Ptr< Socket > socket)
Send data.
Definition:
flame-regression.cc:170
FlameRegressionTest::m_serverSocket
Ptr< Socket > m_serverSocket
Server-side socket.
Definition:
flame-regression.h:89
FlameRegressionTest::HandleReadClient
void HandleReadClient(Ptr< Socket > socket)
Handle a packet reception.
Definition:
flame-regression.cc:199
FlameRegressionTest::HandleReadServer
void HandleReadServer(Ptr< Socket > socket)
Handle a packet reception.
Definition:
flame-regression.cc:185
FlameRegressionTest::m_interfaces
Ipv4InterfaceContainer m_interfaces
Needed to install applications.
Definition:
flame-regression.h:79
FlameRegressionTest::CreateDevices
void CreateDevices()
Create devices function.
Definition:
flame-regression.cc:98
FlameRegressionTest::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
flame-regression.cc:57
FlameRegressionTest::m_sentPktsCounter
uint32_t m_sentPktsCounter
sent packets counter
Definition:
flame-regression.h:94
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
flame
flame-regression.h
Generated on Tue May 28 2024 23:38:14 for ns-3 by
1.9.6