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));
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
maintain list of active neighbors
UnicastForwardCallback GetUnicastForwardCallback() const
Get unicast forward callback.
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.
AODV route request queue.
bool LookupRoute(Ipv4Address dst, RoutingTableEntry &rt)
Lookup routing table entry with destination address dst.
Time GetBlacklistTimeout() const
Get the blacklist timeout value.
virtual void DoRun()
Implementation to actually run this TestCase.
bool IsUnidirectional() const
Get the unidirectional flag.
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.
Ipv4Address GetDestination() const
Get destination address function.
void IncrementRreqCnt()
Increment the RREQ count.
RequestQueue q
Request queue.
void SetMaxQueueLen(uint32_t len)
Set maximum queue length.
Ipv4InterfaceAddress GetInterface() const
Get the Ipv4InterfaceAddress.
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.
bool IsPrecursorListEmpty() const
Check that precursor list is empty.
#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.
virtual void DoRun()
Implementation to actually run this TestCase.
void SetExpireTime(Time exp)
Set expire time.
void SetLifeTime(Time lt)
Set the lifetime.
bool IsEqual(const CallbackBase &other) const
Equality test.
SocketErrno
Enumeration of the possible errors returned by a socket.
void GetPrecursors(std::vector< Ipv4Address > &prec) const
Inserts precursors in output parameter prec if they do not yet exist in vector.
Time GetExpireTime() const
Get expire time.
void Error(Ptr< const Packet > p, const Ipv4Header &h, Socket::SocketErrno e)
Error test function.
void CheckTimeout2()
Check timeout function 2.
Time GetQueueTimeout() const
Get queue timeout.
Ptr< Ipv4Route > GetRoute() const
Get route function.
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.
uint32_t GetSeqNo() const
Get the sequence number.
bool InsertPrecursor(Ipv4Address id)
Insert precursor in precursor list if it doesn't yet exist in the list.
void SetRreqCnt(uint8_t n)
Set the RREQ count.
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.
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.
bool GetValidSeqNo() const
Get the valid sequence number.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
virtual void DoRun()
Implementation to actually run this TestCase.
Ipv4Address GetNextHop() const
Get next hop address.
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)
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.
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. ...
Ptr< NetDevice > GetOutputDevice() const
Get output device.
void Unicast(Ptr< Ipv4Route > route, Ptr< const Packet > packet, const Ipv4Header &header)
Unicast test function.
uint8_t GetRreqCnt() const
Get the RREQ count.
The Routing table used by AODV protocol.
Time GetBadLinkLifetime() const
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
Ipv4Header GetIpv4Header() const
Get IPv4 header.
void SetQueueTimeout(Time t)
Set queue timeout.
bool AddRoute(RoutingTableEntry &r)
Add routing table entry if it doesn't yet exist in routing table.
ErrorCallback GetErrorCallback() const
Get error callback.
void Handler(Ipv4Address addr)
Handler test function.
Time Seconds(double value)
Construct a Time in the indicated unit.
uint16_t GetHop() const
Get the number of hops.
void SetCallback(Callback< void, Ipv4Address > cb)
Set link failure callback.
uint32_t GetMaxQueueLen() const
Get maximum queue length.
void SetNextHop(Ipv4Address nextHop)
Set next hop address.
RouteFlags GetFlag() const
Get the route flags.
void CheckTimeout()
Check timeout 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.
Time GetLifeTime() const
Get the lifetime.
This test suite implements a Unit Test.
void CheckTimeout3()
Check timeout function 3.
bool DeleteRoute(Ipv4Address dst)
Delete routing table entry with destination address dst, if it exists.
Ptr< const Packet > GetPacket() const
Get packet from entry.
void AddHeader(const Header &header)
Add header to this packet.