The Routing table used by DSDV protocol. More...
#include <dsdv-rtable.h>
Public Member Functions | |
RoutingTable () | |
c-tor | |
bool | AddIpv4Event (Ipv4Address address, EventId id) |
bool | AddRoute (RoutingTableEntry &r) |
bool | AnyRunningEvent (Ipv4Address address) |
void | Clear () |
Delete all entries from routing table. | |
void | DeleteAllRoutesFromInterface (Ipv4InterfaceAddress iface) |
Delete all route from interface with address iface. | |
bool | DeleteIpv4Event (Ipv4Address address) |
bool | DeleteRoute (Ipv4Address dst) |
bool | ForceDeleteIpv4Event (Ipv4Address address) |
EventId | GetEventId (Ipv4Address address) |
void | GetListOfAllRoutes (std::map< Ipv4Address, RoutingTableEntry > &allRoutes) |
void | GetListOfDestinationWithNextHop (Ipv4Address nxtHp, std::map< Ipv4Address, RoutingTableEntry > &dstList) |
bool | LookupRoute (Ipv4Address dst, RoutingTableEntry &rt) |
bool | LookupRoute (Ipv4Address id, RoutingTableEntry &rt, bool forRouteInput) |
void | Print (Ptr< OutputStreamWrapper > stream) const |
Print routing table. | |
void | Purge (std::map< Ipv4Address, RoutingTableEntry > &removedAddresses) |
Delete all outdated entries if Lifetime is expired. | |
uint32_t | RoutingTableSize () |
Provides the number of routes present in that nodes routing table. | |
bool | Update (RoutingTableEntry &rt) |
Handle life time of invalid route | |
Time | Getholddowntime () const |
void | Setholddowntime (Time t) |
Private Attributes | |
Fields | |
std::map< Ipv4Address, RoutingTableEntry > | m_ipv4AddressEntry |
an entry in the routing table. | |
std::map< Ipv4Address, EventId > | m_ipv4Events |
an entry in the event table. | |
Time | m_holddownTime |
The Routing table used by DSDV protocol.
Definition at line 219 of file dsdv-rtable.h.
bool ns3::dsdv::RoutingTable::AddIpv4Event | ( | Ipv4Address | address, |
EventId | id | ||
) |
Add an event for a destination address so that the update to for that destination is sent after the event is completed.
address | destination address for which this event is running. |
id | unique eventid that was generated. |
Definition at line 263 of file dsdv-rtable.cc.
References m_ipv4Events.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv().
bool ns3::dsdv::RoutingTable::AddRoute | ( | RoutingTableEntry & | r | ) |
Add routing table entry if it doesn't yet exist in routing table
r | routing table entry |
Definition at line 127 of file dsdv-rtable.cc.
References m_ipv4AddressEntry.
Referenced by ns3::DsdvTableTestCase::DoRun(), ns3::dsdv::RoutingProtocol::NotifyAddAddress(), ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::dsdv::RoutingProtocol::RouteOutput(), and ns3::dsdv::RoutingProtocol::SetIpv4().
bool ns3::dsdv::RoutingTable::AnyRunningEvent | ( | Ipv4Address | address | ) |
Force delete an update waiting for settling time to complete as a better update to same destination was received.
address | destination address for which this event is running. |
Definition at line 271 of file dsdv-rtable.cc.
References ns3::EventId::IsRunning(), and m_ipv4Events.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv(), and ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
bool ns3::dsdv::RoutingTable::DeleteIpv4Event | ( | Ipv4Address | address | ) |
Clear up the entry from the map after the event is completed
address | destination address for which this event is running. |
Definition at line 310 of file dsdv-rtable.cc.
References ns3::EventId::IsExpired(), ns3::EventId::IsRunning(), and m_ipv4Events.
Referenced by ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
bool ns3::dsdv::RoutingTable::DeleteRoute | ( | Ipv4Address | dst | ) |
Delete routing table entry with destination address dst, if it exists.
dst | destination address |
Definition at line 110 of file dsdv-rtable.cc.
References m_ipv4AddressEntry.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv(), and ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
bool ns3::dsdv::RoutingTable::ForceDeleteIpv4Event | ( | Ipv4Address | address | ) |
Force delete an update waiting for settling time to complete as a better update to same destination was received.
address | destination address for which this event is running. |
Definition at line 295 of file dsdv-rtable.cc.
References ns3::Simulator::Cancel(), and m_ipv4Events.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv().
EventId ns3::dsdv::RoutingTable::GetEventId | ( | Ipv4Address | address | ) |
Get the EcentId associated with that address.
address | destination address for which this event is running. |
Definition at line 337 of file dsdv-rtable.cc.
References m_ipv4Events.
Referenced by ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
void ns3::dsdv::RoutingTable::GetListOfAllRoutes | ( | std::map< Ipv4Address, RoutingTableEntry > & | allRoutes | ) |
Lookup list of all addresses in the routing table
allRoutes | is the list that will hold all these addresses present in the nodes routing table |
Definition at line 169 of file dsdv-rtable.cc.
References m_ipv4AddressEntry, and ns3::aodv::VALID.
Referenced by ns3::dsdv::RoutingProtocol::LookForQueuedPackets(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::dsdv::RoutingProtocol::SendPeriodicUpdate(), and ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
void ns3::dsdv::RoutingTable::GetListOfDestinationWithNextHop | ( | Ipv4Address | nxtHp, |
std::map< Ipv4Address, RoutingTableEntry > & | dstList | ||
) |
Lookup list of addresses for which nxtHp is the next Hop address
nxtHp | nexthop's address for which we want the list of destinations |
dstList | is the list that will hold all these destination addresses |
Definition at line 182 of file dsdv-rtable.cc.
References m_ipv4AddressEntry.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv().
bool ns3::dsdv::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 71 of file dsdv-rtable.cc.
References m_ipv4AddressEntry.
Referenced by ns3::DsdvTableTestCase::DoRun(), ns3::dsdv::RoutingProtocol::GetSettlingTime(), ns3::dsdv::RoutingProtocol::LookForQueuedPackets(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::dsdv::RoutingProtocol::RouteOutput(), ns3::dsdv::RoutingProtocol::SendPeriodicUpdate(), and ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().
bool ns3::dsdv::RoutingTable::Update | ( | RoutingTableEntry & | rt | ) |
Updating the routing Table with routing table entry rt
rt | routing table entry |
Definition at line 135 of file dsdv-rtable.cc.
References m_ipv4AddressEntry.
Referenced by ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::dsdv::RoutingProtocol::SendPeriodicUpdate(), and ns3::dsdv::RoutingProtocol::SendTriggeredUpdate().