34 #include "ns3/ipv4-route.h"
36 #include "ns3/net-device.h"
37 #include "ns3/output-stream-wrapper.h"
38 #include "ns3/timer.h"
42 #include <sys/types.h>
82 bool changedEntries =
false);
282 return (
m_ipv4Route->GetDestination() == destination);
371 std::map<Ipv4Address, RoutingTableEntry>& dstList);
394 void Purge(std::map<Ipv4Address, RoutingTableEntry>& removedAddresses);
An identifier for simulation events.
Ipv4 addresses are stored in host order in this class.
a class to store IPv4 address information on an interface
Smart pointer class similar to boost::intrusive_ptr.
static Time Now()
Return the current simulation virtual time.
Simulation virtual time values and global simulation resolution.
Unit
The unit to use to interpret a number representing time.
void SetHop(uint32_t hopCount)
Set hop.
uint32_t m_seqNo
Destination Sequence Number.
void SetLifeTime(Time lifeTime)
Set lifetime.
void Print(Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) const
Print routing table entry.
Time m_lifeTime
Expiration or deletion time of the route Lifetime field in the routing table plays dual role – for an...
RouteFlags GetFlag() const
Get route flags.
bool GetEntriesChanged() const
Get entries changed.
void SetEntriesChanged(bool entriesChanged)
Set entries changed indicator.
Time GetSettlingTime() const
Get settling time.
Ipv4Address GetDestination() const
Get destination IP address.
Ptr< Ipv4Route > GetRoute() const
Get route.
void SetSettlingTime(Time settlingTime)
Set settling time.
RouteFlags m_flag
Routing flags: valid, invalid or in search.
void SetOutputDevice(Ptr< NetDevice > device)
Set output device.
bool m_entriesChanged
Flag to show if any of the routing table entries were changed with the routing update.
void SetNextHop(Ipv4Address nextHop)
Set next hop.
void SetRoute(Ptr< Ipv4Route > route)
Set route.
Ipv4InterfaceAddress m_iface
Output interface address.
RoutingTableEntry(Ptr< NetDevice > dev=nullptr, 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
bool operator==(const Ipv4Address destination) const
Compare destination address.
Ipv4InterfaceAddress GetInterface() const
Get interface address.
Ptr< Ipv4Route > m_ipv4Route
Ip route, include.
Time m_settlingTime
Time for which the node retains an update with changed metric before broadcasting it.
uint32_t GetSeqNo() const
Get sequence number.
Ptr< NetDevice > GetOutputDevice() const
Get output device.
Time GetLifeTime() const
Get lifetime.
void SetFlag(RouteFlags flag)
Set route flags.
uint32_t GetHop() const
Get hop.
uint32_t m_hops
Hop Count (number of hops needed to reach destination)
Ipv4Address GetNextHop() const
Get next hop.
void SetInterface(Ipv4InterfaceAddress iface)
Set interface address.
void SetSeqNo(uint32_t sequenceNumber)
Set sequence number.
The Routing table used by DSDV protocol.
bool LookupRoute(Ipv4Address dst, RoutingTableEntry &rt)
Lookup routing table entry with destination address dst.
Time m_holddownTime
hold down time of an expired route
bool DeleteRoute(Ipv4Address dst)
Delete routing table entry with destination address dst, if it exists.
bool ForceDeleteIpv4Event(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
void Clear()
Delete all entries from routing table.
bool AddRoute(RoutingTableEntry &r)
Add routing table entry if it doesn't yet exist in routing table.
void Setholddowntime(Time t)
Set hold down time (time until an invalid route may be deleted)
bool DeleteIpv4Event(Ipv4Address address)
Clear up the entry from the map after the event is completed.
bool Update(RoutingTableEntry &rt)
Updating the routing Table with routing table entry rt.
Time Getholddowntime() const
Get hold down time (time until an invalid route may be deleted)
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.
void Print(Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) const
Print routing table.
void DeleteAllRoutesFromInterface(Ipv4InterfaceAddress iface)
Delete all route from interface with address iface.
EventId GetEventId(Ipv4Address address)
Get the EventId associated with that address.
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...
uint32_t RoutingTableSize()
Provides the number of routes present in that nodes routing table.
std::map< Ipv4Address, EventId > m_ipv4Events
an entry in the event table.
bool AnyRunningEvent(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
void Purge(std::map< Ipv4Address, RoutingTableEntry > &removedAddresses)
Delete all outdated entries if Lifetime is expired.
void GetListOfAllRoutes(std::map< Ipv4Address, RoutingTableEntry > &allRoutes)
Lookup list of all addresses in the routing table.
Every class exported by the ns3 library is enclosed in the ns3 namespace.