32 #include "ns3/simulator.h"
51 m_lifeTime (lifetime),
54 m_settlingTime (SettlingTime),
55 m_entriesChanged (areChanged)
78 std::map<Ipv4Address, RoutingTableEntry>::const_iterator i =
m_ipv4AddressEntry.find (
id);
96 std::map<Ipv4Address, RoutingTableEntry>::const_iterator i =
m_ipv4AddressEntry.find (
id);
101 if (forRouteInput ==
true &&
id == i->second.GetInterface ().GetBroadcast ())
129 std::pair<std::map<Ipv4Address, RoutingTableEntry>::iterator,
bool> result =
m_ipv4AddressEntry.insert (std::make_pair (
131 return result.second;
155 if (i->second.GetInterface () == iface)
157 std::map<Ipv4Address, RoutingTableEntry>::iterator tmp = i;
173 if (i->second.GetDestination () !=
Ipv4Address (
"127.0.0.1") && i->second.GetFlag () ==
VALID)
176 std::make_pair (i->first,i->second));
183 std::map<Ipv4Address, RoutingTableEntry> & unreachable)
185 unreachable.clear ();
186 for (std::map<Ipv4Address, RoutingTableEntry>::const_iterator i =
m_ipv4AddressEntry.begin (); i
189 if (i->second.GetNextHop () == nextHop)
191 unreachable.insert (std::make_pair (i->first,i->second));
201 << std::setw (10) <<
m_hops <<
"\t" << std::setw (10) <<
m_seqNo <<
"\t"
215 std::map<Ipv4Address, RoutingTableEntry>::iterator itmp = i;
216 if (i->second.GetLifeTime () >
m_holddownTime && (i->second.GetHop () > 0))
220 if ((j->second.GetNextHop () == i->second.GetDestination ()) && (i->second.GetHop () != j->second.GetHop ()))
222 std::map<Ipv4Address, RoutingTableEntry>::iterator jtmp = j;
223 removedAddresses.insert (std::make_pair (j->first,j->second));
232 removedAddresses.insert (std::make_pair (i->first,i->second));
253 *stream->
GetStream () <<
"\nDSDV Routing table\n" <<
"Destination\t\tGateway\t\tInterface\t\tHopCount\t\tSeqNum\t\tLifeTime\t\tSettlingTime\n";
254 for (std::map<Ipv4Address, RoutingTableEntry>::const_iterator i =
m_ipv4AddressEntry.begin (); i
257 i->second.Print (stream);
266 std::pair<std::map<Ipv4Address, EventId>::iterator,
bool> result =
m_ipv4Events.insert (std::make_pair (address,
id));
267 return result.second;
274 std::map<Ipv4Address, EventId>::const_iterator i =
m_ipv4Events.find (address);
298 std::map<Ipv4Address, EventId>::const_iterator i =
m_ipv4Events.find (address);
313 std::map<Ipv4Address, EventId>::const_iterator i =
m_ipv4Events.find (address);
339 std::map <Ipv4Address, EventId>::const_iterator i =
m_ipv4Events.find (address);