32 #include "ns3/simulator.h" 
   52     m_lifeTime (lifetime),
 
   55     m_settlingTime (SettlingTime),
 
   56     m_entriesChanged (areChanged)
 
   79   std::map<Ipv4Address, RoutingTableEntry>::const_iterator i = 
m_ipv4AddressEntry.find (
id);
 
   97   std::map<Ipv4Address, RoutingTableEntry>::const_iterator i = 
m_ipv4AddressEntry.find (
id);
 
  102   if (forRouteInput == 
true && 
id == i->second.GetInterface ().GetBroadcast ())
 
  130   std::pair<std::map<Ipv4Address, RoutingTableEntry>::iterator, 
bool> result = 
m_ipv4AddressEntry.insert (std::make_pair (
 
  132   return result.second;
 
  156       if (i->second.GetInterface () == iface)
 
  158           std::map<Ipv4Address, RoutingTableEntry>::iterator tmp = i;
 
  174       if (i->second.GetDestination () != 
Ipv4Address (
"127.0.0.1") && i->second.GetFlag () == 
VALID)
 
  177             std::make_pair (i->first,i->second));
 
  184                                                std::map<Ipv4Address, RoutingTableEntry> & unreachable)
 
  186   unreachable.clear ();
 
  187   for (std::map<Ipv4Address, RoutingTableEntry>::const_iterator i = 
m_ipv4AddressEntry.begin (); i
 
  190       if (i->second.GetNextHop () == nextHop)
 
  192           unreachable.insert (std::make_pair (i->first,i->second));
 
  202                         << std::setw (10) << 
m_hops << 
"\t" << std::setw (10) << 
m_seqNo << 
"\t" 
  216       std::map<Ipv4Address, RoutingTableEntry>::iterator itmp = i;
 
  217       if (i->second.GetLifeTime () > 
m_holddownTime && (i->second.GetHop () > 0))
 
  221               if ((j->second.GetNextHop () == i->second.GetDestination ()) && (i->second.GetHop () != j->second.GetHop ()))
 
  223                   std::map<Ipv4Address, RoutingTableEntry>::iterator jtmp = j;
 
  224                   removedAddresses.insert (std::make_pair (j->first,j->second));
 
  233           removedAddresses.insert (std::make_pair (i->first,i->second));
 
  254   *stream->
GetStream () << 
"\nDSDV Routing table\n" << 
"Destination\t\tGateway\t\tInterface\t\tHopCount\t\tSeqNum\t\tLifeTime\t\tSettlingTime\n";
 
  255   for (std::map<Ipv4Address, RoutingTableEntry>::const_iterator i = 
m_ipv4AddressEntry.begin (); i
 
  258       i->second.Print (stream);
 
  267   std::pair<std::map<Ipv4Address, EventId>::iterator, 
bool> result = 
m_ipv4Events.insert (std::make_pair (address,
id));
 
  268   return result.second;
 
  275   std::map<Ipv4Address, EventId>::const_iterator i = 
m_ipv4Events.find (address);
 
  299   std::map<Ipv4Address, EventId>::const_iterator i = 
m_ipv4Events.find (address);
 
  314   std::map<Ipv4Address, EventId>::const_iterator i = 
m_ipv4Events.find (address);
 
  340   std::map <Ipv4Address, EventId>::const_iterator i = 
m_ipv4Events.find (address);
 
Time m_holddownTime
hold down time of an expired route 
 
uint32_t m_hops
Hop Count (number of hops needed to reach destination) 
 
Simulation virtual time values and global simulation resolution. 
 
Smart pointer class similar to boost::intrusive_ptr. 
 
void Print(Ptr< OutputStreamWrapper > stream) const 
Print routing table entry. 
 
bool AnyRunningEvent(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
 
Ipv4Address GetLocal(void) const 
Get the local address. 
 
Time m_settlingTime
Time for which the node retains an update with changed metric before broadcasting it...
 
EventId GetEventId(Ipv4Address address)
Get the EcentId associated with that address. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
void GetListOfAllRoutes(std::map< Ipv4Address, RoutingTableEntry > &allRoutes)
Lookup list of all addresses in the routing table. 
 
static void Cancel(const EventId &id)
Set the cancel bit on this event: the event's associated function will not be invoked when it expires...
 
bool IsRunning(void) const 
This method is syntactic sugar for !IsExpired(). 
 
bool Update(RoutingTableEntry &rt)
Updating the routing Table with routing table entry rt. 
 
void SetSource(Ipv4Address src)
 
bool ForceDeleteIpv4Event(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
 
double GetSeconds(void) const 
Get an approximation of the time stored in this instance in the indicated unit. 
 
void SetGateway(Ipv4Address gw)
 
uint32_t m_seqNo
Destination Sequence Number. 
 
void Purge(std::map< Ipv4Address, RoutingTableEntry > &removedAddresses)
Delete all outdated entries if Lifetime is expired. 
 
Ipv4Address GetGateway(void) const 
 
Ipv4InterfaceAddress m_iface
Output interface address. 
 
std::map< Ipv4Address, EventId > m_ipv4Events
an entry in the event table. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
void DeleteAllRoutesFromInterface(Ipv4InterfaceAddress iface)
Delete all route from interface with address iface. 
 
bool AddRoute(RoutingTableEntry &r)
Add routing table entry if it doesn't yet exist in routing table. 
 
uint32_t RoutingTableSize()
Provides the number of routes present in that nodes routing table. 
 
static Time Now(void)
Return the current simulation virtual time. 
 
void SetOutputDevice(Ptr< NetDevice > outputDevice)
Equivalent in Linux to dst_entry.dev. 
 
std::map< Ipv4Address, RoutingTableEntry > m_ipv4AddressEntry
an entry in the routing table. 
 
void GetListOfDestinationWithNextHop(Ipv4Address nxtHp, std::map< Ipv4Address, RoutingTableEntry > &dstList)
Lookup list of addresses for which nxtHp is the next Hop address. 
 
bool DeleteIpv4Event(Ipv4Address address)
Clear up the entry from the map after the event is completed. 
 
Ipv4Address GetDestination(void) const 
 
Ipv4 addresses are stored in host order in this class. 
 
bool DeleteRoute(Ipv4Address dst)
Delete routing table entry with destination address dst, if it exists. 
 
a class to store IPv4 address information on an interface 
 
An identifier for simulation events. 
 
RoutingTableEntry(Ptr< NetDevice > dev=0, Ipv4Address dst=Ipv4Address(), uint32_t seqNo=0, Ipv4InterfaceAddress iface=Ipv4InterfaceAddress(), uint32_t hops=0, Ipv4Address nextHop=Ipv4Address(), Time lifetime=Simulator::Now(), Time SettlingTime=Simulator::Now(), bool changedEntries=false)
c-tor 
 
Ipv4Address GetDestination() const 
Get destination IP address. 
 
Time m_lifeTime
Expiration or deletion time of the route Lifetime field in the routing table plays dual role – for a...
 
bool AddIpv4Event(Ipv4Address address, EventId id)
Add an event for a destination address so that the update to for that destination is sent after the e...
 
void Print(Ptr< OutputStreamWrapper > stream) const 
Print routing table. 
 
bool LookupRoute(Ipv4Address dst, RoutingTableEntry &rt)
Lookup routing table entry with destination address dst. 
 
bool IsExpired(void) const 
This method is syntactic sugar for the ns3::Simulator::IsExpired method. 
 
Ptr< Ipv4Route > m_ipv4Route
Ip route, include. 
 
std::ostream * GetStream(void)
Return a pointer to an ostream previously set in the wrapper. 
 
void SetDestination(Ipv4Address dest)