37 #include <sys/types.h>
39 #include "ns3/ipv4-route.h"
40 #include "ns3/timer.h"
41 #include "ns3/net-device.h"
42 #include "ns3/output-stream-wrapper.h"
279 Purge (std::map<Ipv4Address, RoutingTableEntry> & removedAddresses);
Time m_holddownTime
an entry in the routing table.
uint32_t m_hops
Hop Count (number of hops needed to reach destination)
keep track of time values and allow control of global simulation resolution
void SetEntriesChanged(bool entriesChanged)
smart pointer class similar to boost::intrusive_ptr
Time Getholddowntime() const
Ipv4Address GetNextHop() const
void Print(Ptr< OutputStreamWrapper > stream) const
bool operator==(Ipv4Address const destination) const
Compare destination address.
bool AnyRunningEvent(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
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.
void SetLifeTime(Time lifeTime)
void SetFlag(RouteFlags flag)
uint32_t GetSeqNo() const
void GetListOfAllRoutes(std::map< Ipv4Address, RoutingTableEntry > &allRoutes)
Lookup list of all addresses in the routing table.
void SetNextHop(Ipv4Address nextHop)
bool Update(RoutingTableEntry &rt)
Updating the routing Table with routing table entry rt.
Ptr< Ipv4Route > GetRoute() const
Ptr< NetDevice > GetOutputDevice(void) const
bool ForceDeleteIpv4Event(Ipv4Address address)
Force delete an update waiting for settling time to complete as a better update to same destination w...
RouteFlags GetFlag() const
The Routing table used by DSDV protocol.
void SetRoute(Ptr< Ipv4Route > route)
void SetGateway(Ipv4Address gw)
uint32_t m_seqNo
Destination Sequence Number.
void SetSeqNo(uint32_t sequenceNumber)
void Purge(std::map< Ipv4Address, RoutingTableEntry > &removedAddresses)
Delete all outdated entries if Lifetime is expired.
Ptr< NetDevice > GetOutputDevice() const
Ipv4Address GetGateway(void) const
Time GetSettlingTime() const
Ipv4InterfaceAddress m_iface
Output interface address.
std::map< Ipv4Address, EventId > m_ipv4Events
an entry in the event table.
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 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
void SetOutputDevice(Ptr< NetDevice > device)
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.
Ipv4InterfaceAddress GetInterface() const
bool GetEntriesChanged() const
uint32_t m_entriesChanged
Flag to show if any of the routing table entries were changed with the routing update.
RoutingTableEntry(Ptr< NetDevice > dev=0, Ipv4Address dst=Ipv4Address(), uint32_t m_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
void Clear()
Delete all entries from routing table.
void Setholddowntime(Time t)
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.
RouteFlags m_flag
Routing flags: valid, invalid or in search.
Ptr< Ipv4Route > m_ipv4Route
Ip route, include.
void SetSettlingTime(Time settlingTime)
void SetHop(uint32_t hopCount)
void SetInterface(Ipv4InterfaceAddress iface)