21 #include "ns3/mesh-helper.h" 22 #include "ns3/simulator.h" 23 #include "ns3/random-variable-stream.h" 24 #include "ns3/rng-seed-manager.h" 25 #include "ns3/mobility-helper.h" 26 #include "ns3/double.h" 27 #include "ns3/uinteger.h" 28 #include "ns3/string.h" 29 #include "ns3/yans-wifi-helper.h" 30 #include "ns3/internet-stack-helper.h" 31 #include "ns3/ipv4-address-helper.h" 32 #include "ns3/abort.h" 33 #include "ns3/mobility-model.h" 34 #include "ns3/pcap-test.h" 41 const char *
const PREFIX =
"hwmp-simplest-regression-test";
58 RngSeedManager::SetSeed (12345);
59 RngSeedManager::SetRun (7);
66 Simulator::Destroy ();
78 mobility.SetPositionAllocator (
"ns3::GridPositionAllocator",
85 mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
119 int64_t streamsUsed = 0;
134 streamsUsed += mesh.
AssignStreams (meshDevices, streamsUsed);
136 streamsUsed += wifiChannel.
AssignStreams (chan, streamsUsed);
144 address.SetBase (
"10.1.1.0",
"255.255.255.0");
153 for (
int i = 0; i < 2; ++i)
164 socket->
Send (Create<Packet> (100));
176 while ((packet = socket->
RecvFrom (from)))
181 socket->
SendTo (packet, 0, from);
190 while ((packet = socket->
RecvFrom (from)))
void Set(std::string name, const AttributeValue &v)
void CreateDevices()
Create devices function.
const char *const PREFIX
Unique PCAP file name prefix.
uint32_t GetId(void) const
Ipv4InterfaceContainer m_interfaces
interfaces
Hold variables of type string.
Make it easy to create and manage PHY objects for the yans model.
void InstallApplications()
Install application function.
HwmpSimplestRegressionTest()
void ResetPosition()
Reset position.
aggregate IP/TCP/UDP functionality to existing Nodes.
Ptr< Socket > m_clientSocket
Client-side socket.
#define NS_PCAP_TEST_EXPECT_EQ(filename)
Test that a pair of reference/new pcap files are equal.
void SetNumberOfInterfaces(uint32_t nInterfaces)
Set a number of interfaces in a mesh network.
a polymophic address class
Ptr< YansWifiChannel > Create(void) const
Time m_time
Simulation time.
Keep track of the current position and velocity of an object.
void SetChannel(Ptr< YansWifiChannel > channel)
void RemoveAllPacketTags(void)
Remove all packet tags.
void EnablePcapAll(std::string prefix, bool promiscuous=false)
Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created ...
AttributeValue implementation for Time.
Ipv4Address GetAddress(uint32_t i, uint32_t j=0) const
void HandleReadClient(Ptr< Socket > socket)
Handle a packet reception.
Hold an unsigned integer type.
#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.
holds a vector of ns3::NetDevice pointers
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
void SetRecvCallback(Callback< void, Ptr< Socket > >)
Notify application when new data is available to be read.
Ptr< Socket > m_serverSocket
Server-side socket.
void SetMacType(std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
virtual int Connect(const Address &address)=0
Initiate a connection to a remote host.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
void CheckResults()
Check results function.
manage and create wifi channel objects for the yans model.
void SendData(Ptr< Socket > socket)
Send data.
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
void SetStackInstaller(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
void SetPosition(const Vector &position)
virtual void DoRun()
Implementation to actually run this TestCase.
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
Helper class used to assign positions and mobility models to nodes.
NetDeviceContainer Install(const WifiPhyHelper &phyHelper, NodeContainer c) const
Install 802.11s mesh device & protocols on given node list.
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
void HandleReadServer(Ptr< Socket > socket)
Handle a packet reception.
virtual Ptr< Node > GetNode(void) const =0
Return the node this socket is associated with.
std::string CreateTempDirFilename(std::string filename)
Construct the full path to a file in a temporary directory.
Time Seconds(double value)
Construct a Time in the indicated unit.
uint32_t GetN(void) const
Get the number of Ptr<NetDevice> stored in this container.
virtual ~HwmpSimplestRegressionTest()
void RemoveAllByteTags(void)
Remove all byte tags stored in this packet.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
void CreateNodes()
Create nodes function.
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)=0
Send data to a specified peer.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Time Now(void)
create an ns3::Time instance which contains the current simulation time.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Helper to create IEEE 802.11s mesh networks.
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 Send(Ptr< Packet > p, uint32_t flags)=0
Send data (or dummy data) to the remote host.
This class can be used to hold variables of floating point type such as 'double' or 'float'...
uint32_t m_sentPktsCounter
sent packets counter
int64_t AssignStreams(Ptr< YansWifiChannel > c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by the channel.