21 #include "ns3/aodv-neighbor.h"
22 #include "ns3/aodv-packet.h"
23 #include "ns3/aodv-rqueue.h"
24 #include "ns3/aodv-rtable.h"
25 #include "ns3/ipv4-route.h"
42 virtual void DoRun ();
132 uint32_t bytes = p->RemoveHeader (h2);
184 uint32_t bytes = p->RemoveHeader (h2);
237 uint32_t bytes = p->RemoveHeader (h2);
293 uint32_t bytes = p->RemoveHeader (h2);
383 virtual void DoRun ();
569 std::vector<Ipv4Address> prec;
631 std::map<Ipv4Address, uint32_t> unreachable;
634 unreachable.insert (std::make_pair (
Ipv4Address (
"4.3.2.1"), 3));
UnicastForwardCallback GetUnicastForwardCallback() const
Get unicast forward callback.
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
maintain list of active neighbors
void InvalidateRoutesWithDst(std::map< Ipv4Address, uint32_t > const &unreachable)
Update routing entries with this destination as follows:
Unit test for AODV routing table entry.
bool MarkLinkAsUnidirectional(Ipv4Address neighbor, Time blacklistTimeout)
Mark entry as unidirectional (e.g.
void SetOutputDevice(Ptr< NetDevice > dev)
Set output device.
SocketErrno
Enumeration of the possible errors returned by a socket.
AODV route request queue.
bool LookupRoute(Ipv4Address dst, RoutingTableEntry &rt)
Lookup routing table entry with destination address dst.
Ipv4Header GetIpv4Header() const
Get IPv4 header.
virtual void DoRun()
Implementation to actually run this TestCase.
void Unicast2(Ptr< Ipv4Route > route, Ptr< const Packet > packet, const Ipv4Header &header)
Unicast 2 testfunction.
bool Update(RoutingTableEntry &rt)
Update routing table.
void CheckTimeout1()
Check timeout function 1.
void IncrementRreqCnt()
Increment the RREQ count.
RequestQueue q
Request queue.
void SetMaxQueueLen(uint32_t len)
Set maximum queue length.
static void Run(void)
Run the simulation.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
void SetUnicastForwardCallback(UnicastForwardCallback ucb)
Set unicast forward callback.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
void Error(Ptr< const Packet > p, const Ipv4Header &h, Socket::SocketErrno e)
Error test function.
Ptr< NetDevice > GetOutputDevice() const
Get output device.
void GetPrecursors(std::vector< Ipv4Address > &prec) const
Inserts precursors in output parameter prec if they do not yet exist in vector.
virtual void DoRun()
Implementation to actually run this TestCase.
This test suite implements a Unit Test.
void SetExpireTime(Time exp)
Set expire time.
void SetLifeTime(Time lt)
Set the lifetime.
void Error(Ptr< const Packet > p, const Ipv4Header &h, Socket::SocketErrno e)
Error test function.
void CheckTimeout2()
Check timeout function 2.
bool Enqueue(QueueEntry &entry)
Push entry in queue, if there is no entry with the same packet and destination address in queue...
Neighbors * neighbor
The Neighbors.
Unit test for RequestQueue.
bool InsertPrecursor(Ipv4Address id)
Insert precursor in precursor list if it doesn't yet exist in the list.
Time GetLifeTime() const
Get the lifetime.
void SetRreqCnt(uint8_t n)
Set the RREQ count.
bool IsPrecursorListEmpty() const
Check that precursor list is empty.
virtual void DoRun()
Implementation to actually run this TestCase.
void SetErrorCallback(ErrorCallback ecb)
Set error callback.
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay.
Time GetQueueTimeout() const
Get queue timeout.
void SetBlacklistTimeout(Time t)
Set the blacklist timeout.
bool SetEntryState(Ipv4Address dst, RouteFlags state)
Set routing table entry flags.
bool LookupPrecursor(Ipv4Address id)
Lookup precursor by address.
void SetIpv4Header(Ipv4Header h)
Set IPv4 header.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Ipv4Address GetNextHop() const
Get next hop address.
virtual void DoRun()
Implementation to actually run this TestCase.
bool DeletePrecursor(Ipv4Address id)
Delete precursor.
bool IsNeighbor(Ipv4Address addr)
Check that node with address addr is neighbor.
void SetValidSeqNo(bool s)
Set the valid sequence number.
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
Time GetBlacklistTimeout() const
Get the blacklist timeout value.
uint32_t GetMaxQueueLen() const
Get maximum queue length.
Ptr< const Packet > GetPacket() const
Get packet from entry.
Ipv4InterfaceAddress GetInterface() const
Get the Ipv4InterfaceAddress.
Time GetBadLinkLifetime() const
void DropPacketWithDst(Ipv4Address dst)
Remove all packets with destination IP address dst.
void DeleteAllPrecursors()
Delete all precursors.
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
ns3::aodv::AodvTestSuite g_aodvTestSuite
the test suite
void GetListOfDestinationWithNextHop(Ipv4Address nextHop, std::map< Ipv4Address, uint32_t > &unreachable)
Lookup routing entries with next hop Address dst and not empty list of precursors.
void SetInterface(Ipv4InterfaceAddress iface)
Set the Ipv4InterfaceAddress.
void Error2(Ptr< const Packet > p, const Ipv4Header &h, Socket::SocketErrno e)
Error2 test function.
Unit test for AODV routing table.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetFlag(RouteFlags flag)
Set the route flags.
void Invalidate(Time badLinkLifetime)
Mark entry as "down" (i.e.
uint16_t GetHop() const
Get the number of hops.
bool IsEqual(const CallbackBase &other) const
Equality test.
ErrorCallback GetErrorCallback() const
Get error callback.
void SetBadLinkLifetime(Time t)
void Update(Ipv4Address addr, Time expire)
Update expire time for entry with address addr, if it exists, else add new entry. ...
void Unicast(Ptr< Ipv4Route > route, Ptr< const Packet > packet, const Ipv4Header &header)
Unicast test function.
The Routing table used by AODV protocol.
Time GetExpireTime() const
Get expire time.
void SetUnidirectional(bool u)
Set the unidirectional flag.
Time GetExpireTime(Ipv4Address addr)
Return expire time for neighbor node with address addr, if exists, else return 0. ...
void Unicast(Ptr< Ipv4Route > route, Ptr< const Packet > packet, const Ipv4Header &header)
Unicast test function.
void SetHop(uint16_t hop)
Set the number of hops.
Ipv4 addresses are stored in host order in this class.
virtual void DoRun()
Implementation to actually run this TestCase.
void CheckSizeLimit()
Check size limit function.
a class to store IPv4 address information on an interface
uint32_t GetSeqNo() const
Get the sequence number.
void SetQueueTimeout(Time t)
Set queue timeout.
bool AddRoute(RoutingTableEntry &r)
Add routing table entry if it doesn't yet exist in routing table.
void Handler(Ipv4Address addr)
Handler test function.
Time Seconds(double value)
Construct a Time in the indicated unit.
void SetCallback(Callback< void, Ipv4Address > cb)
Set link failure callback.
void SetNextHop(Ipv4Address nextHop)
Set next hop address.
void CheckTimeout()
Check timeout function.
Ptr< Ipv4Route > GetRoute() const
Get route function.
bool Find(Ipv4Address dst)
Finds whether a packet with destination dst exists in the queue.
bool Dequeue(Ipv4Address dst, QueueEntry &entry)
Return first found (the earliest) entry for given destination.
Unit test for AODV routing table entry.
void CheckTimeout3()
Check timeout function 3.
bool IsUnidirectional() const
Get the unidirectional flag.
bool DeleteRoute(Ipv4Address dst)
Delete routing table entry with destination address dst, if it exists.
RouteFlags GetFlag() const
Get the route flags.
Ipv4Address GetDestination() const
Get destination address function.
uint8_t GetRreqCnt() const
Get the RREQ count.
void AddHeader(const Header &header)
Add header to this packet.
bool GetValidSeqNo() const
Get the valid sequence number.