A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::aodv::RoutingTable Class Reference

The Routing table used by AODV protocol. More...

#include <aodv-rtable.h>

+ Collaboration diagram for ns3::aodv::RoutingTable:

Public Member Functions

 RoutingTable (Time t)
 c-tor More...
 
bool AddRoute (RoutingTableEntry &r)
 Add routing table entry if it doesn't yet exist in routing table. More...
 
void Clear ()
 Delete all entries from routing table. More...
 
void DeleteAllRoutesFromInterface (Ipv4InterfaceAddress iface)
 Delete all route from interface with address iface. More...
 
bool DeleteRoute (Ipv4Address dst)
 Delete routing table entry with destination address dst, if it exists. More...
 
void GetListOfDestinationWithNextHop (Ipv4Address nextHop, std::map< Ipv4Address, uint32_t > &unreachable)
 Lookup routing entries with next hop Address dst and not empty list of precursors. More...
 
void InvalidateRoutesWithDst (std::map< Ipv4Address, uint32_t > const &unreachable)
 Update routing entries with this destinations as follows: More...
 
bool LookupRoute (Ipv4Address dst, RoutingTableEntry &rt)
 Lookup routing table entry with destination address dst. More...
 
bool LookupValidRoute (Ipv4Address dst, RoutingTableEntry &rt)
 Lookup route in VALID state. More...
 
bool MarkLinkAsUnidirectional (Ipv4Address neighbor, Time blacklistTimeout)
 Mark entry as unidirectional (e.g. More...
 
void Print (Ptr< OutputStreamWrapper > stream) const
 Print routing table. More...
 
void Purge ()
 Delete all outdated entries and invalidate valid entry if Lifetime is expired. More...
 
bool SetEntryState (Ipv4Address dst, RouteFlags state)
 Set routing table entry flags. More...
 
bool Update (RoutingTableEntry &rt)
 Update routing table. More...
 
Handle life time of invalid route
Time GetBadLinkLifetime () const
 
void SetBadLinkLifetime (Time t)
 

Private Member Functions

void Purge (std::map< Ipv4Address, RoutingTableEntry > &table) const
 const version of Purge, for use by Print() method More...
 

Private Attributes

Time m_badLinkLifetime
 Deletion time for invalid routes. More...
 
std::map< Ipv4Address,
RoutingTableEntry
m_ipv4AddressEntry
 

Detailed Description

The Routing table used by AODV protocol.

Definition at line 188 of file aodv-rtable.h.

Constructor & Destructor Documentation

ns3::aodv::RoutingTable::RoutingTable ( Time  t)

c-tor

Definition at line 193 of file aodv-rtable.cc.

Member Function Documentation

void ns3::aodv::RoutingTable::Clear ( )
inline

Delete all entries from routing table.

Definition at line 236 of file aodv-rtable.h.

References m_ipv4AddressEntry.

Referenced by ns3::aodv::RoutingProtocol::NotifyInterfaceDown(), and ns3::aodv::RoutingProtocol::NotifyRemoveAddress().

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::DeleteAllRoutesFromInterface ( Ipv4InterfaceAddress  iface)

Delete all route from interface with address iface.

Definition at line 334 of file aodv-rtable.cc.

References m_ipv4AddressEntry, and NS_LOG_FUNCTION.

Referenced by ns3::aodv::RoutingProtocol::NotifyInterfaceDown(), and ns3::aodv::RoutingProtocol::NotifyRemoveAddress().

+ Here is the caller graph for this function:

bool ns3::aodv::RoutingTable::DeleteRoute ( Ipv4Address  dst)

Delete routing table entry with destination address dst, if it exists.

Parameters
dstdestination address
Returns
true on success

Definition at line 234 of file aodv-rtable.cc.

References m_ipv4AddressEntry, NS_LOG_FUNCTION, NS_LOG_LOGIC, and Purge().

Referenced by ns3::aodv::AodvRtableTest::DoRun(), and ns3::aodv::RoutingProtocol::RouteRequestTimerExpire().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::aodv::RoutingTable::GetBadLinkLifetime ( ) const
inline

Definition at line 195 of file aodv-rtable.h.

References m_badLinkLifetime.

Referenced by ns3::aodv::AodvRtableTest::DoRun().

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::GetListOfDestinationWithNextHop ( Ipv4Address  nextHop,
std::map< Ipv4Address, uint32_t > &  unreachable 
)

Lookup routing entries with next hop Address dst and not empty list of precursors.

Definition at line 297 of file aodv-rtable.cc.

References m_ipv4AddressEntry, NS_LOG_FUNCTION, NS_LOG_LOGIC, and Purge().

Referenced by ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::RecvError(), and ns3::aodv::RoutingProtocol::SendRerrWhenBreaksLinkToNextHop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::InvalidateRoutesWithDst ( std::map< Ipv4Address, uint32_t > const &  unreachable)

Update routing entries with this destinations as follows:

  1. The destination sequence number of this routing entry, if it exists and is valid, is incremented.
  2. The entry is invalidated by marking the route entry as invalid
  3. The Lifetime field is updated to current time plus DELETE_PERIOD.

Definition at line 314 of file aodv-rtable.cc.

References m_badLinkLifetime, m_ipv4AddressEntry, NS_LOG_FUNCTION, NS_LOG_LOGIC, Purge(), and ns3::aodv::VALID.

Referenced by ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::RecvError(), and ns3::aodv::RoutingProtocol::SendRerrWhenBreaksLinkToNextHop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::aodv::RoutingTable::MarkLinkAsUnidirectional ( Ipv4Address  neighbor,
Time  blacklistTimeout 
)

Mark entry as unidirectional (e.g.

add this neighbor to "blacklist" for blacklistTimeout period)

Parameters
neighbor- neighbor address link to which assumed to be unidirectional
blacklistTimeout- time for which the neighboring node is put into the blacklist
Returns
true on success

Definition at line 420 of file aodv-rtable.cc.

References ns3::Time::GetSeconds(), m_ipv4AddressEntry, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::aodv::RoutingProtocol::AckTimerExpire(), and ns3::aodv::AodvRtableTest::DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::Print ( Ptr< OutputStreamWrapper stream) const

Print routing table.

Definition at line 438 of file aodv-rtable.cc.

References ns3::OutputStreamWrapper::GetStream(), m_ipv4AddressEntry, and Purge().

Referenced by ns3::aodv::RoutingProtocol::PrintRoutingTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::Purge ( )

Delete all outdated entries and invalidate valid entry if Lifetime is expired.

Definition at line 354 of file aodv-rtable.cc.

References ns3::aodv::INVALID, m_badLinkLifetime, m_ipv4AddressEntry, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::aodv::VALID.

Referenced by AddRoute(), DeleteRoute(), ns3::aodv::RoutingProtocol::Forwarding(), GetListOfDestinationWithNextHop(), InvalidateRoutesWithDst(), LookupRoute(), and Print().

+ Here is the caller graph for this function:

void ns3::aodv::RoutingTable::Purge ( std::map< Ipv4Address, RoutingTableEntry > &  table) const
private

const version of Purge, for use by Print() method

Definition at line 387 of file aodv-rtable.cc.

References ns3::aodv::INVALID, m_badLinkLifetime, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::aodv::VALID.

void ns3::aodv::RoutingTable::SetBadLinkLifetime ( Time  t)
inline

Definition at line 196 of file aodv-rtable.h.

References m_badLinkLifetime.

Referenced by ns3::aodv::AodvRtableTest::DoRun().

+ Here is the caller graph for this function:

bool ns3::aodv::RoutingTable::SetEntryState ( Ipv4Address  dst,
RouteFlags  state 
)

Set routing table entry flags.

Definition at line 280 of file aodv-rtable.cc.

References m_ipv4AddressEntry, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::aodv::AodvRtableTest::DoRun().

+ Here is the caller graph for this function:

Member Data Documentation

Time ns3::aodv::RoutingTable::m_badLinkLifetime
private

Deletion time for invalid routes.

Definition at line 251 of file aodv-rtable.h.

Referenced by GetBadLinkLifetime(), InvalidateRoutesWithDst(), Purge(), and SetBadLinkLifetime().


The documentation for this class was generated from the following files: