23 #include "ns3/simulator.h"
24 #include "ns3/random-variable-stream.h"
25 #include "ns3/rng-seed-manager.h"
26 #include "ns3/double.h"
27 #include "ns3/uinteger.h"
28 #include "ns3/string.h"
29 #include "ns3/olsr-helper.h"
30 #include "ns3/internet-stack-helper.h"
31 #include "ns3/simple-net-device-helper.h"
32 #include "ns3/ipv4-address-helper.h"
33 #include "ns3/abort.h"
34 #include "ns3/socket-factory.h"
35 #include "ns3/ipv4-raw-socket-factory.h"
36 #include "ns3/udp-l4-protocol.h"
37 #include "ns3/udp-header.h"
38 #include "ns3/olsr-header.h"
46 TestCase (
"Test OLSR Hello messages generation"),
47 m_time (
Seconds (5)), m_countA (0), m_countB (0)
91 ipv4.
SetBase (
"10.1.1.0",
"255.255.255.0");
96 m_rxSocketA = DynamicCast<Ipv4RawSocketImpl> (rxSocketFactoryA->CreateSocket ());
101 m_rxSocketB = DynamicCast<Ipv4RawSocketImpl> (rxSocketFactoryB->CreateSocket ());
109 uint32_t availableData;
111 Ptr<Packet> receivedPacketProbe = socket->
Recv (std::numeric_limits<uint32_t>::max (), 0);
135 std::vector<olsr::MessageHeader::Hello::LinkMessage>::const_iterator iter;
157 uint32_t availableData;
159 Ptr<Packet> receivedPacketProbe = socket->
Recv (std::numeric_limits<uint32_t>::max (), 0);
183 std::vector<olsr::MessageHeader::Hello::LinkMessage>::const_iterator iter;
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
Smart pointer class similar to boost::intrusive_ptr.
NetDeviceContainer Install(Ptr< Node > node) const
This method creates an ns3::SimpleChannel with the attributes configured by SimpleNetDeviceHelper::Se...
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
Hold variables of type string.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
void SetChannelAttribute(std::string n1, const AttributeValue &v1)
static void Run(void)
Run the simulation.
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
const Time m_time
Total simulation time.
aggregate IP/TCP/UDP functionality to existing Nodes.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Helper class that adds OLSR routing to nodes.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
API to create RAW socket instances.
static void SetRun(uint64_t run)
Set the run number of simulation.
#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
void SetDeviceAttribute(std::string n1, const AttributeValue &v1)
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
uint8_t m_countB
Packet counter on node B.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
uint8_t m_countA
Packet counter on node A.
virtual Ptr< Packet > Recv(uint32_t maxSize, uint32_t flags)=0
Read data from the socket.
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
static void SetSeed(uint32_t seed)
Set the seed.
Ipv4 addresses are stored in host order in this class.
Ipv4InterfaceContainer Assign(const NetDeviceContainer &c)
Assign IP addresses to the net devices specified in the container based on the current network prefix...
static void Stop(void)
Tell the Simulator the calling event should be the last one executed.
Ptr< Node > Get(uint32_t i) const
Get the Ptr stored in this container at a given index.
void CreateNodes()
Create & configure test network.
Time Seconds(double value)
Construct a Time in the indicated unit.
void ReceivePktProbeB(Ptr< Socket > socket)
Receive raw data on node B.
Ptr< Ipv4RawSocketImpl > m_rxSocketB
Receiving socket on node B.
void ReceivePktProbeA(Ptr< Socket > socket)
Receive raw data on node A.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
build a set of SimpleNetDevice objects
static const uint8_t PROT_NUMBER
protocol number (0x11)
Ptr< Ipv4RawSocketImpl > m_rxSocketA
Receiving socket on node A.
void SetRoutingHelper(const Ipv4RoutingHelper &routing)
void SetBase(Ipv4Address network, Ipv4Mask mask, Ipv4Address base="0.0.0.1")
Set the base network number, network mask and base address.
virtual uint32_t GetRxAvailable(void) const =0
Return number of bytes which can be returned from one or multiple calls to Recv.