10#include "ns3/aodv-helper.h"
11#include "ns3/boolean.h"
12#include "ns3/config.h"
13#include "ns3/constant-position-mobility-model.h"
14#include "ns3/double.h"
15#include "ns3/internet-stack-helper.h"
16#include "ns3/ipv4-address-helper.h"
17#include "ns3/mobility-helper.h"
18#include "ns3/mobility-model.h"
20#include "ns3/pcap-file.h"
21#include "ns3/simulator.h"
22#include "ns3/socket-factory.h"
23#include "ns3/string.h"
25#include "ns3/udp-echo-helper.h"
26#include "ns3/udp-socket-factory.h"
27#include "ns3/uinteger.h"
28#include "ns3/yans-wifi-helper.h"
69 void DoRun()
override;
73 :
TestCase(
"UDP Echo 127.0.0.1 test"),
83 Ptr<Packet> receivedPacket = socket->Recv(std::numeric_limits<uint32_t>::max(), 0);
92 Ptr<Packet> receivedPacket = socket->RecvFrom(std::numeric_limits<uint32_t>::max(), 0, from);
97 receivedPacket->RemoveAllPacketTags();
98 receivedPacket->RemoveAllByteTags();
100 socket->SendTo(receivedPacket, 0, to);
122 m->SetPosition(Vector(0, 0, 0));
123 nodes.Get(0)->AggregateObject(m);
126 wifiMac.
SetType(
"ns3::AdhocWifiMac");
132 wifi.SetRemoteStationManager(
"ns3::ConstantRateWifiManager",
145 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 Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Smart pointer class similar to boost::intrusive_ptr.
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 int Close()=0
Close a socket.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
virtual Ptr< Node > GetNode() const =0
Return the node this socket is associated with.
Hold variables of type string.
void AddTestCase(TestCase *testCase, Duration duration=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.
static constexpr auto SYSTEM
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
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
#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...