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"
36 virtual void DoRun ();
112 uint32_t bytes = p->RemoveHeader (h2);
159 uint32_t bytes = p->RemoveHeader (h2);
205 uint32_t bytes = p->RemoveHeader (h2);
251 uint32_t bytes = p->RemoveHeader (h2);
299 virtual void DoRun ();
455 std::vector<Ipv4Address> prec;
510 std::map<Ipv4Address, uint32_t> unreachable;
513 unreachable.insert (std::make_pair (
Ipv4Address (
"4.3.2.1"), 3));
UnicastForwardCallback GetUnicastForwardCallback() const
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 destinations 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)
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
virtual void DoRun()
Implementation to actually run this TestCase.
void Unicast2(Ptr< Ipv4Route > route, Ptr< const Packet > packet, const Ipv4Header &header)
bool Update(RoutingTableEntry &rt)
Update routing table.
void Error(Ptr< const Packet >, const Ipv4Header &, Socket::SocketErrno)
void SetMaxQueueLen(uint32_t len)
static void Run(void)
Run the simulation.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
void SetUnicastForwardCallback(UnicastForwardCallback ucb)
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Ptr< NetDevice > GetOutputDevice() const
void Error2(Ptr< const Packet >, const Ipv4Header &, Socket::SocketErrno)
void GetPrecursors(std::vector< Ipv4Address > &prec) const
Inserts precursors in vector prec if they does not yet exist in vector.
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
Schedule an event to expire at the relative time "time" is reached.
virtual void DoRun()
Implementation to actually run this TestCase.
This test suite implements a Unit Test.
void SetExpireTime(Time exp)
void SetLifeTime(Time lt)
void SetBalcklistTimeout(Time t)
ns3::aodv::AodvTestSuite g_aodvTestSuite
bool Enqueue(QueueEntry &entry)
Push entry in queue, if there is no entry with the same packet and destination address in queue...
Unit test for RequestQueue.
bool InsertPrecursor(Ipv4Address id)
Insert precursor in precursor list if it doesn't yet exist in the list.
void SetRreqCnt(uint8_t n)
bool IsPrecursorListEmpty() const
Check that precursor list empty.
virtual void DoRun()
Implementation to actually run this TestCase.
void Error(Ptr< const Packet >, const Ipv4Header &, Socket::SocketErrno)
void SetErrorCallback(ErrorCallback ecb)
void AddTestCase(TestCase *testCase, enum TestDuration duration)
Add an individual child TestCase to this test suite.
Time GetQueueTimeout() const
bool SetEntryState(Ipv4Address dst, RouteFlags state)
Set routing table entry flags.
bool LookupPrecursor(Ipv4Address id)
Lookup precursor by address.
void SetIpv4Header(Ipv4Header h)
Ipv4Address GetNextHop() const
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)
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
Time GetBlacklistTimeout() const
uint32_t GetMaxQueueLen() const
Ptr< const Packet > GetPacket() const
Ipv4InterfaceAddress GetInterface() const
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().
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)
Unit test for AODV routing table.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetFlag(RouteFlags flag)
void Invalidate(Time badLinkLifetime)
Mark entry as "down" (i.e. disable it)
bool IsEqual(const CallbackBase &other) const
Equality test.
ErrorCallback GetErrorCallback() const
uint32_t GetSize()
Number of entries.
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)
The Routing table used by AODV protocol.
Time GetExpireTime() const
void SetUnidirectional(bool u)
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)
void SetHop(uint16_t hop)
Ipv4 addresses are stored in host order in this class.
virtual void DoRun()
Implementation to actually run this TestCase.
a class to store IPv4 address information on an interface
uint32_t GetSeqNo() const
void SetQueueTimeout(Time t)
bool AddRoute(RoutingTableEntry &r)
Add routing table entry if it doesn't yet exist in routing table.
void Handler(Ipv4Address addr)
Time Seconds(double value)
Construct a Time in the indicated unit.
void SetCallback(Callback< void, Ipv4Address > cb)
Handle link failure callback.
void SetNextHop(Ipv4Address nextHop)
Ptr< Ipv4Route > GetRoute() const
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.
bool IsUnidirectional() const
bool DeleteRoute(Ipv4Address dst)
Delete routing table entry with destination address dst, if it exists.
RouteFlags GetFlag() const
Ipv4Address GetDestination() const
uint8_t GetRreqCnt() const
void AddHeader(const Header &header)
Add header to this packet.
bool GetValidSeqNo() const