The Routing table used by AODV protocol. More...
#include <aodv-rtable.h>
 Collaboration diagram for ns3::aodv::RoutingTable:
 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 | 
The Routing table used by AODV protocol.
Definition at line 188 of file aodv-rtable.h.
| ns3::aodv::RoutingTable::RoutingTable | ( | Time | t | ) | 
c-tor
Definition at line 193 of file aodv-rtable.cc.
| bool ns3::aodv::RoutingTable::AddRoute | ( | RoutingTableEntry & | r | ) | 
Add routing table entry if it doesn't yet exist in routing table.
| r | routing table entry | 
Definition at line 248 of file aodv-rtable.cc.
References ns3::aodv::RoutingTableEntry::GetDestination(), ns3::aodv::RoutingTableEntry::GetFlag(), ns3::aodv::IN_SEARCH, m_ipv4AddressEntry, NS_LOG_FUNCTION, Purge(), and ns3::aodv::RoutingTableEntry::SetRreqCnt().
Referenced by ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::NotifyAddAddress(), ns3::aodv::RoutingProtocol::NotifyInterfaceUp(), ns3::aodv::RoutingProtocol::NotifyRemoveAddress(), ns3::aodv::RoutingProtocol::ProcessHello(), ns3::aodv::RoutingProtocol::RecvReply(), ns3::aodv::RoutingProtocol::RecvRequest(), ns3::aodv::RoutingProtocol::SendRequest(), ns3::aodv::RoutingProtocol::SetIpv4(), and ns3::aodv::RoutingProtocol::UpdateRouteToNeighbor().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | 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:
 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:
 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.
| dst | destination address | 
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 call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | 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:
 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 call graph for this function: Here is the caller 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:
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 call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::aodv::RoutingTable::LookupRoute | ( | Ipv4Address | dst, | 
| RoutingTableEntry & | rt | ||
| ) | 
Lookup routing table entry with destination address dst.
| dst | destination address | 
| rt | entry with destination address dst, if exists | 
Definition at line 199 of file aodv-rtable.cc.
References m_ipv4AddressEntry, NS_LOG_FUNCTION, NS_LOG_LOGIC, and Purge().
Referenced by ns3::aodv::RoutingProtocol::DeferredRouteOutput(), ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::Forwarding(), LookupValidRoute(), ns3::aodv::RoutingProtocol::ProcessHello(), ns3::aodv::RoutingProtocol::RecvError(), ns3::aodv::RoutingProtocol::RecvReply(), ns3::aodv::RoutingProtocol::RecvReplyAck(), ns3::aodv::RoutingProtocol::RecvRequest(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::aodv::RoutingProtocol::ScheduleRreqRetry(), ns3::aodv::RoutingProtocol::SendReplyAck(), ns3::aodv::RoutingProtocol::SendReplyByIntermediateNode(), ns3::aodv::RoutingProtocol::SendRequest(), ns3::aodv::RoutingProtocol::SendRerrWhenBreaksLinkToNextHop(), ns3::aodv::RoutingProtocol::UpdateRouteLifeTime(), and ns3::aodv::RoutingProtocol::UpdateRouteToNeighbor().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::aodv::RoutingTable::LookupValidRoute | ( | Ipv4Address | dst, | 
| RoutingTableEntry & | rt | ||
| ) | 
Lookup route in VALID state.
Definition at line 221 of file aodv-rtable.cc.
References ns3::aodv::RoutingTableEntry::GetFlag(), LookupRoute(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::aodv::VALID.
Referenced by ns3::aodv::RoutingProtocol::RecvReply(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::aodv::RoutingProtocol::RouteOutput(), ns3::aodv::RoutingProtocol::RouteRequestTimerExpire(), ns3::aodv::RoutingProtocol::SendRerrMessage(), and ns3::aodv::RoutingProtocol::SendRerrWhenNoRouteToForward().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller 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)
| neighbor | - neighbor address link to which assumed to be unidirectional | 
| blacklistTimeout | - time for which the neighboring node is put into the blacklist | 
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 call graph for this function: Here is the caller 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 call graph for this function: Here is the caller 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:
 Here is the caller graph for this function:| 
 | 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.
| 
 | 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:
 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:
 Here is the caller graph for this function:| bool ns3::aodv::RoutingTable::Update | ( | RoutingTableEntry & | rt | ) | 
Update routing table.
Definition at line 260 of file aodv-rtable.cc.
References ns3::aodv::RoutingTableEntry::GetDestination(), ns3::aodv::IN_SEARCH, m_ipv4AddressEntry, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), ns3::aodv::RoutingProtocol::RecvReply(), ns3::aodv::RoutingProtocol::RecvReplyAck(), ns3::aodv::RoutingProtocol::RecvRequest(), ns3::aodv::RoutingProtocol::ScheduleRreqRetry(), ns3::aodv::RoutingProtocol::SendReplyByIntermediateNode(), ns3::aodv::RoutingProtocol::SendRequest(), ns3::aodv::RoutingProtocol::UpdateRouteLifeTime(), and ns3::aodv::RoutingProtocol::UpdateRouteToNeighbor().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Deletion time for invalid routes.
Definition at line 251 of file aodv-rtable.h.
Referenced by GetBadLinkLifetime(), InvalidateRoutesWithDst(), Purge(), and SetBadLinkLifetime().
| 
 | private | 
Definition at line 249 of file aodv-rtable.h.
Referenced by AddRoute(), Clear(), DeleteAllRoutesFromInterface(), DeleteRoute(), GetListOfDestinationWithNextHop(), InvalidateRoutesWithDst(), LookupRoute(), MarkLinkAsUnidirectional(), Print(), Purge(), SetEntryState(), and Update().