A Discrete-Event Network Simulator
API
ns3::aodv::RoutingTableEntry Class Reference

Routing table entry. More...

#include "aodv-rtable.h"

+ Collaboration diagram for ns3::aodv::RoutingTableEntry:

Public Member Functions

 RoutingTableEntry (Ptr< NetDevice > dev=nullptr, Ipv4Address dst=Ipv4Address(), bool vSeqNo=false, uint32_t seqNo=0, Ipv4InterfaceAddress iface=Ipv4InterfaceAddress(), uint16_t hops=0, Ipv4Address nextHop=Ipv4Address(), Time lifetime=Simulator::Now())
 constructor More...
 
 ~RoutingTableEntry ()
 

Precursors management

Timer m_ackTimer
 RREP_ACK timer. More...
 
bool m_validSeqNo
 Valid Destination Sequence Number flag. More...
 
uint32_t m_seqNo
 Destination Sequence Number, if m_validSeqNo = true. More...
 
uint16_t m_hops
 Hop Count (number of hops needed to reach destination) More...
 
Time m_lifeTime
 Expiration or deletion time of the route Lifetime field in the routing table plays dual role: for an active route it is the expiration time, and for an invalid route it is the deletion time. More...
 
Ptr< Ipv4Routem_ipv4Route
 Ip route, include. More...
 
Ipv4InterfaceAddress m_iface
 Output interface address. More...
 
RouteFlags m_flag
 Routing flags: valid, invalid or in search. More...
 
std::vector< Ipv4Addressm_precursorList
 List of precursors. More...
 
Time m_routeRequestTimeout
 When I can send another request. More...
 
uint8_t m_reqCount
 Number of route requests. More...
 
bool m_blackListState
 Indicate if this entry is in "blacklist". More...
 
Time m_blackListTimeout
 Time for which the node is put into the blacklist. More...
 
bool InsertPrecursor (Ipv4Address id)
 Insert precursor in precursor list if it doesn't yet exist in the list. More...
 
bool LookupPrecursor (Ipv4Address id)
 Lookup precursor by address. More...
 
bool DeletePrecursor (Ipv4Address id)
 Delete precursor. More...
 
void DeleteAllPrecursors ()
 Delete all precursors. More...
 
bool IsPrecursorListEmpty () const
 Check that precursor list is empty. More...
 
void GetPrecursors (std::vector< Ipv4Address > &prec) const
 Inserts precursors in output parameter prec if they do not yet exist in vector. More...
 
void Invalidate (Time badLinkLifetime)
 Mark entry as "down" (i.e. More...
 
Ipv4Address GetDestination () const
 Get destination address function. More...
 
Ptr< Ipv4RouteGetRoute () const
 Get route function. More...
 
void SetRoute (Ptr< Ipv4Route > r)
 Set route function. More...
 
void SetNextHop (Ipv4Address nextHop)
 Set next hop address. More...
 
Ipv4Address GetNextHop () const
 Get next hop address. More...
 
void SetOutputDevice (Ptr< NetDevice > dev)
 Set output device. More...
 
Ptr< NetDeviceGetOutputDevice () const
 Get output device. More...
 
Ipv4InterfaceAddress GetInterface () const
 Get the Ipv4InterfaceAddress. More...
 
void SetInterface (Ipv4InterfaceAddress iface)
 Set the Ipv4InterfaceAddress. More...
 
void SetValidSeqNo (bool s)
 Set the valid sequence number. More...
 
bool GetValidSeqNo () const
 Get the valid sequence number. More...
 
void SetSeqNo (uint32_t sn)
 Set the sequence number. More...
 
uint32_t GetSeqNo () const
 Get the sequence number. More...
 
void SetHop (uint16_t hop)
 Set the number of hops. More...
 
uint16_t GetHop () const
 Get the number of hops. More...
 
void SetLifeTime (Time lt)
 Set the lifetime. More...
 
Time GetLifeTime () const
 Get the lifetime. More...
 
void SetFlag (RouteFlags flag)
 Set the route flags. More...
 
RouteFlags GetFlag () const
 Get the route flags. More...
 
void SetRreqCnt (uint8_t n)
 Set the RREQ count. More...
 
uint8_t GetRreqCnt () const
 Get the RREQ count. More...
 
void IncrementRreqCnt ()
 Increment the RREQ count. More...
 
void SetUnidirectional (bool u)
 Set the unidirectional flag. More...
 
bool IsUnidirectional () const
 Get the unidirectional flag. More...
 
void SetBlacklistTimeout (Time t)
 Set the blacklist timeout. More...
 
Time GetBlacklistTimeout () const
 Get the blacklist timeout value. More...
 
bool operator== (const Ipv4Address dst) const
 Compare destination address. More...
 
void Print (Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) const
 Print packet to trace file. More...
 

Detailed Description

Routing table entry.

Definition at line 61 of file aodv-rtable.h.

Constructor & Destructor Documentation

◆ RoutingTableEntry()

ns3::aodv::RoutingTableEntry::RoutingTableEntry ( Ptr< NetDevice dev = nullptr,
Ipv4Address  dst = Ipv4Address(),
bool  vSeqNo = false,
uint32_t  seqNo = 0,
Ipv4InterfaceAddress  iface = Ipv4InterfaceAddress(),
uint16_t  hops = 0,
Ipv4Address  nextHop = Ipv4Address(),
Time  lifetime = Simulator::Now() 
)

constructor

Parameters
devthe device
dstthe destination IP address
vSeqNoverify sequence number flag
seqNothe sequence number
ifacethe interface
hopsthe number of hops
nextHopthe IP address of the next hop
lifetimethe lifetime of the entry

Definition at line 48 of file aodv-rtable.cc.

References ns3::Ipv4InterfaceAddress::GetLocal(), m_iface, and m_ipv4Route.

+ Here is the call graph for this function:

◆ ~RoutingTableEntry()

ns3::aodv::RoutingTableEntry::~RoutingTableEntry ( )

Definition at line 74 of file aodv-rtable.cc.

Member Function Documentation

◆ DeleteAllPrecursors()

void ns3::aodv::RoutingTableEntry::DeleteAllPrecursors ( )

Delete all precursors.

Definition at line 128 of file aodv-rtable.cc.

References m_precursorList, and NS_LOG_FUNCTION.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the caller graph for this function:

◆ DeletePrecursor()

bool ns3::aodv::RoutingTableEntry::DeletePrecursor ( Ipv4Address  id)

Delete precursor.

Parameters
idprecursor address
Returns
true on success

Definition at line 110 of file aodv-rtable.cc.

References m_precursorList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the caller graph for this function:

◆ GetBlacklistTimeout()

Time ns3::aodv::RoutingTableEntry::GetBlacklistTimeout ( ) const
inline

Get the blacklist timeout value.

Returns
the blacklist timeout value

Definition at line 356 of file aodv-rtable.h.

References m_blackListTimeout.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the caller graph for this function:

◆ GetDestination()

Ipv4Address ns3::aodv::RoutingTableEntry::GetDestination ( ) const
inline

◆ GetFlag()

◆ GetHop()

◆ GetInterface()

◆ GetLifeTime()

Time ns3::aodv::RoutingTableEntry::GetLifeTime ( ) const
inline

◆ GetNextHop()

◆ GetOutputDevice()

Ptr<NetDevice> ns3::aodv::RoutingTableEntry::GetOutputDevice ( ) const
inline

Get output device.

Returns
the output device

Definition at line 186 of file aodv-rtable.h.

References m_ipv4Route.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), and ns3::aodv::RoutingProtocol::UpdateRouteToNeighbor().

+ Here is the caller graph for this function:

◆ GetPrecursors()

void ns3::aodv::RoutingTableEntry::GetPrecursors ( std::vector< Ipv4Address > &  prec) const

Inserts precursors in output parameter prec if they do not yet exist in vector.

Parameters
precvector of precursor addresses

Definition at line 141 of file aodv-rtable.cc.

References IsPrecursorListEmpty(), m_precursorList, and NS_LOG_FUNCTION.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::RecvError(), and ns3::aodv::RoutingProtocol::SendRerrWhenBreaksLinkToNextHop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetRoute()

Ptr<Ipv4Route> ns3::aodv::RoutingTableEntry::GetRoute ( ) const
inline

◆ GetRreqCnt()

uint8_t ns3::aodv::RoutingTableEntry::GetRreqCnt ( ) const
inline

Get the RREQ count.

Returns
the RREQ count

Definition at line 312 of file aodv-rtable.h.

References m_reqCount.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::RouteRequestTimerExpire(), and ns3::aodv::RoutingProtocol::ScheduleRreqRetry().

+ Here is the caller graph for this function:

◆ GetSeqNo()

uint32_t ns3::aodv::RoutingTableEntry::GetSeqNo ( ) const
inline

◆ GetValidSeqNo()

bool ns3::aodv::RoutingTableEntry::GetValidSeqNo ( ) const
inline

◆ IncrementRreqCnt()

void ns3::aodv::RoutingTableEntry::IncrementRreqCnt ( )
inline

Increment the RREQ count.

Definition at line 320 of file aodv-rtable.h.

References m_reqCount.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), and ns3::aodv::RoutingProtocol::SendRequest().

+ Here is the caller graph for this function:

◆ InsertPrecursor()

bool ns3::aodv::RoutingTableEntry::InsertPrecursor ( Ipv4Address  id)

Insert precursor in precursor list if it doesn't yet exist in the list.

Parameters
idprecursor address
Returns
true on success

Definition at line 79 of file aodv-rtable.cc.

References LookupPrecursor(), m_precursorList, and NS_LOG_FUNCTION.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::RecvReply(), and ns3::aodv::RoutingProtocol::SendReplyByIntermediateNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Invalidate()

void ns3::aodv::RoutingTableEntry::Invalidate ( Time  badLinkLifetime)

Mark entry as "down" (i.e.

disable it)

Parameters
badLinkLifetimeduration to keep entry marked as invalid

Definition at line 167 of file aodv-rtable.cc.

References ns3::Time::As(), ns3::aodv::INVALID, m_flag, m_lifeTime, m_reqCount, ns3::Simulator::Now(), NS_LOG_FUNCTION, and ns3::Time::S.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsPrecursorListEmpty()

bool ns3::aodv::RoutingTableEntry::IsPrecursorListEmpty ( ) const

Check that precursor list is empty.

Returns
true if precursor list is empty

Definition at line 135 of file aodv-rtable.cc.

References m_precursorList.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), and GetPrecursors().

+ Here is the caller graph for this function:

◆ IsUnidirectional()

bool ns3::aodv::RoutingTableEntry::IsUnidirectional ( ) const
inline

Get the unidirectional flag.

Returns
the unidirectional flag

Definition at line 338 of file aodv-rtable.h.

References m_blackListState.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::AodvRtableTest::DoRun(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

◆ LookupPrecursor()

bool ns3::aodv::RoutingTableEntry::LookupPrecursor ( Ipv4Address  id)

Lookup precursor by address.

Parameters
idprecursor address
Returns
true on success

Definition at line 94 of file aodv-rtable.cc.

References m_precursorList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), and InsertPrecursor().

+ Here is the caller graph for this function:

◆ operator==()

bool ns3::aodv::RoutingTableEntry::operator== ( const Ipv4Address  dst) const
inline

Compare destination address.

Parameters
dstIP address to compare
Returns
true if equal

Definition at line 369 of file aodv-rtable.h.

References m_ipv4Route.

◆ Print()

void ns3::aodv::RoutingTableEntry::Print ( Ptr< OutputStreamWrapper stream,
Time::Unit  unit = Time::S 
) const

Print packet to trace file.

Parameters
streamThe output stream
unitThe time unit to use (default Time::S)

Definition at line 180 of file aodv-rtable.cc.

References ns3::Ipv4InterfaceAddress::GetLocal(), ns3::OutputStreamWrapper::GetStream(), ns3::aodv::IN_SEARCH, ns3::aodv::INVALID, m_flag, m_hops, m_iface, m_ipv4Route, m_lifeTime, ns3::Simulator::Now(), and ns3::aodv::VALID.

+ Here is the call graph for this function:

◆ SetBlacklistTimeout()

void ns3::aodv::RoutingTableEntry::SetBlacklistTimeout ( Time  t)
inline

Set the blacklist timeout.

Parameters
tthe blacklist timeout value

Definition at line 347 of file aodv-rtable.h.

References m_blackListTimeout.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the caller graph for this function:

◆ SetFlag()

void ns3::aodv::RoutingTableEntry::SetFlag ( RouteFlags  flag)
inline

Set the route flags.

Parameters
flagthe route flags

Definition at line 285 of file aodv-rtable.h.

References m_flag.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), ns3::aodv::RoutingProtocol::RecvReplyAck(), ns3::aodv::RoutingProtocol::RecvRequest(), and ns3::aodv::RoutingProtocol::SendRequest().

+ Here is the caller graph for this function:

◆ SetHop()

void ns3::aodv::RoutingTableEntry::SetHop ( uint16_t  hop)
inline

Set the number of hops.

Parameters
hopthe number of hops

Definition at line 249 of file aodv-rtable.h.

References m_hops.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::AodvRtableTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), ns3::aodv::RoutingProtocol::RecvRequest(), and ns3::aodv::RoutingProtocol::SendRequest().

+ Here is the caller graph for this function:

◆ SetInterface()

void ns3::aodv::RoutingTableEntry::SetInterface ( Ipv4InterfaceAddress  iface)
inline

Set the Ipv4InterfaceAddress.

Parameters
ifaceThe Ipv4InterfaceAddress

Definition at line 204 of file aodv-rtable.h.

References m_iface.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

◆ SetLifeTime()

void ns3::aodv::RoutingTableEntry::SetLifeTime ( Time  lt)
inline

◆ SetNextHop()

void ns3::aodv::RoutingTableEntry::SetNextHop ( Ipv4Address  nextHop)
inline

Set next hop address.

Parameters
nextHopthe next hop IPv4 address

Definition at line 159 of file aodv-rtable.h.

References m_ipv4Route.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

◆ SetOutputDevice()

void ns3::aodv::RoutingTableEntry::SetOutputDevice ( Ptr< NetDevice dev)
inline

Set output device.

Parameters
devThe output device

Definition at line 177 of file aodv-rtable.h.

References m_ipv4Route.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

◆ SetRoute()

void ns3::aodv::RoutingTableEntry::SetRoute ( Ptr< Ipv4Route r)
inline

Set route function.

Parameters
rthe IPv4 route

Definition at line 150 of file aodv-rtable.h.

References m_ipv4Route.

◆ SetRreqCnt()

void ns3::aodv::RoutingTableEntry::SetRreqCnt ( uint8_t  n)
inline

Set the RREQ count.

Parameters
nthe RREQ count

Definition at line 303 of file aodv-rtable.h.

References m_reqCount.

Referenced by ns3::aodv::RoutingTable::AddRoute(), ns3::aodv::AodvRtableEntryTest::DoRun(), and ns3::aodv::RoutingProtocol::UpdateRouteLifeTime().

+ Here is the caller graph for this function:

◆ SetSeqNo()

void ns3::aodv::RoutingTableEntry::SetSeqNo ( uint32_t  sn)
inline

Set the sequence number.

Parameters
snthe sequence number

Definition at line 231 of file aodv-rtable.h.

References m_seqNo.

Referenced by ns3::aodv::RoutingProtocol::ProcessHello(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

◆ SetUnidirectional()

void ns3::aodv::RoutingTableEntry::SetUnidirectional ( bool  u)
inline

Set the unidirectional flag.

Parameters
uthe uni directional flag

Definition at line 329 of file aodv-rtable.h.

References m_blackListState.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun().

+ Here is the caller graph for this function:

◆ SetValidSeqNo()

void ns3::aodv::RoutingTableEntry::SetValidSeqNo ( bool  s)
inline

Set the valid sequence number.

Parameters
sthe sequence number

Definition at line 213 of file aodv-rtable.h.

References m_validSeqNo.

Referenced by ns3::aodv::AodvRtableEntryTest::DoRun(), ns3::aodv::RoutingProtocol::ProcessHello(), and ns3::aodv::RoutingProtocol::RecvRequest().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_ackTimer

Timer ns3::aodv::RoutingTableEntry::m_ackTimer

◆ m_blackListState

bool ns3::aodv::RoutingTableEntry::m_blackListState
private

Indicate if this entry is in "blacklist".

Definition at line 414 of file aodv-rtable.h.

Referenced by IsUnidirectional(), and SetUnidirectional().

◆ m_blackListTimeout

Time ns3::aodv::RoutingTableEntry::m_blackListTimeout
private

Time for which the node is put into the blacklist.

Definition at line 416 of file aodv-rtable.h.

Referenced by GetBlacklistTimeout(), and SetBlacklistTimeout().

◆ m_flag

RouteFlags ns3::aodv::RoutingTableEntry::m_flag
private

Routing flags: valid, invalid or in search.

Definition at line 405 of file aodv-rtable.h.

Referenced by GetFlag(), Invalidate(), Print(), and SetFlag().

◆ m_hops

uint16_t ns3::aodv::RoutingTableEntry::m_hops
private

Hop Count (number of hops needed to reach destination)

Definition at line 387 of file aodv-rtable.h.

Referenced by GetHop(), Print(), and SetHop().

◆ m_iface

Ipv4InterfaceAddress ns3::aodv::RoutingTableEntry::m_iface
private

Output interface address.

Definition at line 403 of file aodv-rtable.h.

Referenced by RoutingTableEntry(), GetInterface(), Print(), and SetInterface().

◆ m_ipv4Route

Ptr<Ipv4Route> ns3::aodv::RoutingTableEntry::m_ipv4Route
private

Ip route, include.

  • destination address
  • source address
  • next hop address (gateway)
  • output device

Definition at line 401 of file aodv-rtable.h.

Referenced by RoutingTableEntry(), GetDestination(), GetNextHop(), GetOutputDevice(), GetRoute(), operator==(), Print(), SetNextHop(), SetOutputDevice(), and SetRoute().

◆ m_lifeTime

Time ns3::aodv::RoutingTableEntry::m_lifeTime
private

Expiration or deletion time of the route Lifetime field in the routing table plays dual role: for an active route it is the expiration time, and for an invalid route it is the deletion time.

Definition at line 394 of file aodv-rtable.h.

Referenced by GetLifeTime(), Invalidate(), Print(), and SetLifeTime().

◆ m_precursorList

std::vector<Ipv4Address> ns3::aodv::RoutingTableEntry::m_precursorList
private

◆ m_reqCount

uint8_t ns3::aodv::RoutingTableEntry::m_reqCount
private

Number of route requests.

Definition at line 412 of file aodv-rtable.h.

Referenced by GetRreqCnt(), IncrementRreqCnt(), Invalidate(), and SetRreqCnt().

◆ m_routeRequestTimeout

Time ns3::aodv::RoutingTableEntry::m_routeRequestTimeout
private

When I can send another request.

Definition at line 410 of file aodv-rtable.h.

◆ m_seqNo

uint32_t ns3::aodv::RoutingTableEntry::m_seqNo
private

Destination Sequence Number, if m_validSeqNo = true.

Definition at line 385 of file aodv-rtable.h.

Referenced by GetSeqNo(), and SetSeqNo().

◆ m_validSeqNo

bool ns3::aodv::RoutingTableEntry::m_validSeqNo
private

Valid Destination Sequence Number flag.

Definition at line 383 of file aodv-rtable.h.

Referenced by GetValidSeqNo(), and SetValidSeqNo().


The documentation for this class was generated from the following files: