20 #include "ns3/abort.h"
21 #include "ns3/aodv-helper.h"
22 #include "ns3/boolean.h"
23 #include "ns3/config.h"
24 #include "ns3/constant-position-mobility-model.h"
25 #include "ns3/double.h"
26 #include "ns3/internet-stack-helper.h"
27 #include "ns3/ipv4-address-helper.h"
28 #include "ns3/mobility-helper.h"
29 #include "ns3/mobility-model.h"
30 #include "ns3/names.h"
31 #include "ns3/pcap-file.h"
32 #include "ns3/simulator.h"
33 #include "ns3/socket-factory.h"
34 #include "ns3/string.h"
36 #include "ns3/udp-echo-helper.h"
37 #include "ns3/udp-socket-factory.h"
38 #include "ns3/uinteger.h"
39 #include "ns3/yans-wifi-helper.h"
80 void DoRun()
override;
84 :
TestCase(
"UDP Echo 127.0.0.1 test"),
111 socket->
SendTo(receivedPacket, 0, to);
118 socket->
SendTo(Create<Packet>(123), 0, realTo);
133 m->SetPosition(Vector(0, 0, 0));
134 nodes.Get(0)->AggregateObject(
m);
137 wifiMac.
SetType(
"ns3::AdhocWifiMac");
143 wifi.SetRemoteStationManager(
"ns3::ConstantRateWifiManager",
156 address.SetBase(
"10.1.1.0",
"255.255.255.0");
a polymophic address class
Helper class that adds AODV routing to nodes.
Ipv4Address GetIpv4() const
static InetSocketAddress ConvertFrom(const Address &address)
Returns an InetSocketAddress which corresponds to the input Address.
aggregate IP/TCP/UDP functionality to existing Nodes.
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
void SetRoutingHelper(const Ipv4RoutingHelper &routing)
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Ipv4 addresses are stored in host order in this class.
static Ipv4Address GetLoopback()
holds a vector of std::pair of Ptr<Ipv4> and interface index.
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
void RemoveAllByteTags()
Remove all byte tags stored in this packet.
void RemoveAllPacketTags()
Remove all packet tags.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void ScheduleWithContext(uint32_t context, const Time &delay, FUNC f, Ts &&... args)
Schedule an event with the given context.
static void Run()
Run the simulation.
static void Stop()
Tell the Simulator the calling event should be the last one executed.
void SetRecvCallback(Callback< void, Ptr< Socket >> receivedData)
Notify application when new data is available to be read.
virtual Ptr< Packet > Recv(uint32_t maxSize, uint32_t flags)=0
Read data from the socket.
virtual Ptr< Node > GetNode() const =0
Return the node this socket is associated with.
virtual int Close()=0
Close a socket.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
virtual Ptr< Packet > RecvFrom(uint32_t maxSize, uint32_t flags, Address &fromAddress)=0
Read a single packet from the socket and retrieve the sender address.
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)=0
Send data to a specified peer.
Hold variables of type string.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
void SetDataDir(std::string directory)
Set the data directory where reference trace files can be found.
@ SYSTEM
This test suite implements a System Test.
API to create UDP socket instances.
helps to create WifiNetDevice objects
create MAC layers for a ns3::WifiNetDevice.
void SetType(std::string type, Args &&... args)
manage and create wifi channel objects for the YANS model.
static YansWifiChannelHelper Default()
Create a channel helper in a default working state.
Ptr< YansWifiChannel > Create() const
Make it easy to create and manage PHY objects for the YANS model.
void SetChannel(Ptr< YansWifiChannel > channel)
AODV Loopback test suite.
AODV loopback UDP echo test case.
Ptr< Socket > m_rxSocket
receive socket;
void SendData(Ptr< Socket > socket)
Send data function.
uint16_t m_echoSendPort
echo send port;
void DoRun() override
Implementation to actually run this TestCase.
void EchoData(Ptr< Socket > socket) const
Echo data function.
Ptr< Socket > m_txSocket
transmit socket;
void ReceivePkt(Ptr< Socket > socket)
Receive packet function.
uint16_t m_echoReplyPort
echo reply port;
Ptr< Socket > m_echoSocket
echo socket;
uint32_t m_count
number of packet received;
ns3::aodv::AodvLoopbackTestSuite g_aodvLoopbackTestSuite
the test suite
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...