A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::dsr::DsrRouting Class Reference

Dsr Routing base. More...

#include <dsr-routing.h>

+ Inheritance diagram for ns3::dsr::DsrRouting:
+ Collaboration diagram for ns3::dsr::DsrRouting:

Public Member Functions

 DsrRouting ()
 Constructor.
virtual ~DsrRouting ()
 Destructor.
uint16_t AddAckReqHeader (Ptr< Packet > &packet, Ipv4Address nextHop)
int64_t AssignStreams (int64_t stream)
void CallCancelPacketTimer (uint16_t ackId, Ipv4Header const &ipv4Header, Ipv4Address realSrc, Ipv4Address realDst)
void CancelNetworkPacketTimer (MaintainBuffEntry &mb)
void CancelPacketTimerNextHop (Ipv4Address nextHop, uint8_t protocol)
void CancelPassivePacketTimer (MaintainBuffEntry &mb)
void CancelRreqTimer (Ipv4Address dst, bool isRemove)
 Cancel the route request timer.
void CheckSendBuffer ()
 Check the send buffer of packets with route when send buffer timer expire.
bool FindSamePackets (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination, uint8_t segsLeft)
void ForwardErrPacket (DsrOptionRerrUnreachHeader &rerr, DsrOptionSRHeader &sourceRoute, Ipv4Address nextHop, uint8_t protocol, Ptr< Ipv4Route > route)
void ForwardPacket (Ptr< const Packet > packet, DsrOptionSRHeader &sourceRoute, Ipv4Header const &ipv4Header, Ipv4Address source, Ipv4Address destination, Ipv4Address targetAddress, uint8_t protocol, Ptr< Ipv4Route > route)
IpL4Protocol::DownTargetCallback GetDownTarget (void) const
IpL4Protocol::DownTargetCallback6 GetDownTarget6 (void) const
uint8_t GetExtensionNumber () const
 Get the extension number.
uint16_t GetIDfromIP (Ipv4Address address)
 Get the node id from ip address.
Ipv4Address GetIPfromID (uint16_t id)
 Get the ip address from id.
Ipv4Address GetIPfromMAC (Mac48Address address)
 Get the Ip address from mac address.
Ptr< NodeGetNode () const
 Get the node.
Ptr< NodeGetNodeWithAddress (Ipv4Address ipv4Address)
Ptr< dsr::DsrOptionsGetOption (int optionNumber)
 Get the option corresponding to optionNumber.
uint32_t GetPriority (DsrMessageType messageType)
int GetProtocolNumber (void) const
 Get the dsr protocol number.
Ptr< dsr::RreqTableGetRequestTable () const
 Get the request table.
Ptr< dsr::RouteCacheGetRouteCache () const
 Get the route cache.
void IncreaseRetransTimer ()
void Insert (Ptr< dsr::DsrOptions > option)
 Insert a new Dsr Option.
void NetworkScheduleTimerExpire (MaintainBuffEntry &mb, uint8_t protocol)
void PacketNewRoute (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination, uint8_t protocol)
 When route vector corrupted, originate a new packet, normally not happening.
void PassiveScheduleTimerExpire (MaintainBuffEntry &mb, bool onlyPassive, uint8_t protocol)
void PrintVector (std::vector< Ipv4Address > &vec)
 Print the route vector.
void PriorityScheduler (uint32_t priority, bool continueWithFirst)
uint8_t Process (Ptr< Packet > &packet, Ipv4Header const &ipv4Header, Ipv4Address dst, uint8_t *nextHeader, uint8_t protocol, bool &isDropped)
 Process method Called from Ipv4L3Protocol::Receive.
virtual enum IpL4Protocol::RxStatus Receive (Ptr< Packet > p, Ipv4Header const &header, Ptr< Ipv4Interface > incomingInterface)
virtual enum IpL4Protocol::RxStatus Receive (Ptr< Packet > p, Ipv6Address &src, Ipv6Address &dst, Ptr< Ipv6Interface > incomingInterface)
void RouteRequestTimerExpire (Ptr< Packet > packet, std::vector< Ipv4Address > address, uint32_t requestId, uint8_t protocol)
void SalvagePacket (Ptr< const Packet > packet, Ipv4Address source, Ipv4Address dst, uint8_t protocol)
void ScheduleCachedReply (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination, Ptr< Ipv4Route > route, double hops)
void ScheduleInitialReply (Ptr< Packet > packet, Ipv4Address source, Ipv4Address nextHop, Ptr< Ipv4Route > route)
void ScheduleInterRequest (Ptr< Packet > packet)
void ScheduleNetworkPacketRetry (MaintainBuffEntry &mb, bool isFirst, uint8_t protocol)
void SchedulePassivePacketRetry (MaintainBuffEntry &mb, bool onlyPassive, uint8_t protocol)
void Scheduler (uint32_t priority)
void ScheduleRreqRetry (Ptr< Packet > packet, std::vector< Ipv4Address > address, bool nonProp, uint32_t requestId, uint8_t protocol)
 Schedule the route request retry.
Ipv4Address SearchNextHop (Ipv4Address ipv4Address, std::vector< Ipv4Address > &vec)
 Get the next hop of the route.
void Send (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination, uint8_t protocol, Ptr< Ipv4Route > route)
void SendAck (uint16_t ackId, Ipv4Address destination, Ipv4Address realSrc, Ipv4Address realDst, uint8_t protocol, Ptr< Ipv4Route > route)
void SendBuffTimerExpire ()
 The send buffer timer expire.
void SendErrorRequest (DsrOptionRerrUnreachHeader &rerr, uint8_t protocol)
void SendGratuitousReply (Ipv4Address replyTo, Ipv4Address replyFrom, std::vector< Ipv4Address > &nodeList, uint8_t protocol)
void SendInitialRequest (Ipv4Address source, Ipv4Address destination, uint8_t protocol)
void SendPacket (Ptr< Packet > packet, Ipv4Address source, Ipv4Address nextHop, uint8_t protocol)
void SendPacketFromBuffer (DsrOptionSRHeader const &sourceRoute, Ipv4Address nextHop, uint8_t protocol)
bool SendRealDown (DsrNetworkQueueEntry &newEntry)
void SendReply (Ptr< Packet > packet, Ipv4Address source, Ipv4Address nextHop, Ptr< Ipv4Route > route)
void SendRequest (Ptr< Packet > packet, Ipv4Address source)
void SendRequestAndIncrement (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination)
void SendUnreachError (Ipv4Address errorHop, Ipv4Address destination, Ipv4Address originalDst, uint8_t salvage, uint8_t protocol)
void SetDownTarget (IpL4Protocol::DownTargetCallback callback)
void SetDownTarget6 (IpL4Protocol::DownTargetCallback6 callback)
void SetNode (Ptr< Node > node)
 Set the node.
void SetRequestTable (Ptr< dsr::RreqTable > r)
 Set the node.
Ptr< Ipv4RouteSetRoute (Ipv4Address nextHop, Ipv4Address srcAddress)
void SetRouteCache (Ptr< dsr::RouteCache > r)
 Set the route cache.
bool IsLinkCache ()
 used to direct to route cache
void UseExtends (RouteCacheEntry::IP_VECTOR rt)
bool LookupRoute (Ipv4Address id, RouteCacheEntry &rt)
bool AddRoute_Link (RouteCacheEntry::IP_VECTOR nodelist, Ipv4Address source)
bool AddRoute (RouteCacheEntry &rt)
void DeleteAllRoutesIncludeLink (Ipv4Address errorSrc, Ipv4Address unreachNode, Ipv4Address node)
bool UpdateRouteEntry (Ipv4Address dst)
- Public Member Functions inherited from ns3::IpL4Protocol
virtual ~IpL4Protocol ()
virtual void ReceiveIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv4Address payloadSource, Ipv4Address payloadDestination, const uint8_t payload[8])
virtual void ReceiveIcmp (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv6Address payloadSource, Ipv6Address payloadDestination, const uint8_t payload[8])
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type identificator.

Static Public Attributes

static const uint8_t PROT_NUMBER = 48
 Define the dsr protocol number.

Protected Member Functions

virtual void DoDispose (void)
 Drop trace callback.
virtual void NotifyNewAggregate ()

Protected Attributes

TracedCallback< Ptr< const
Packet > > 
m_dropTrace
TracedCallback< const
DsrOptionSRHeader & > 
m_txPacketTrace

Private Types

typedef std::list< Ptr
< DsrOptions > > 
DsrOptionList_t
 Define the list to hold DSR options.

Private Member Functions

bool PromiscReceive (Ptr< NetDevice > device, Ptr< const Packet > packet, uint16_t protocol, const Address &from, const Address &to, NetDevice::PacketType packetType)
 Promiscuous receive data packets destined to some other node.
void SendRerrWhenBreaksLinkToNextHop (Ipv4Address nextHop, uint8_t protocol)
 Send the route error message when the link breaks to the next hop.
void Start ()

Private Attributes

uint16_t m_ackId
std::vector< Ipv4Addressm_addresses
std::map< NetworkKey, uint32_t > m_addressForwardCnt
std::map< NetworkKey, Timerm_addressForwardTimer
std::map< Ipv4Address, Timerm_addressReqTimer
Time m_blacklistTimeout
Ipv4Address m_broadcast
uint32_t m_broadcastJitter
std::string m_cacheType
std::vector< Ipv4Addressm_clearList
uint32_t m_discoveryHopLimit
IpL4Protocol::DownTargetCallback m_downTarget
ErrorBuffer m_errorBuffer
std::vector< Ipv4Addressm_finalRoute
GraReply m_graReply
uint32_t m_graReplyTableSize
Time m_gratReplyHoldoff
Time m_initStability
Ptr< Ipv4m_ip
Ptr< Ipv4L3Protocolm_ipv4
Ptr< Ipv4Routem_ipv4Route
Ipv4Address m_mainAddress
MaintainBuffer m_maintainBuffer
uint32_t m_maxCacheLen
Time m_maxCacheTime
uint32_t m_maxEntriesEachDst
uint32_t m_maxMaintainLen
Time m_maxMaintainTime
uint32_t m_maxMaintRexmt
Time m_maxNetworkDelay
uint32_t m_maxNetworkSize
Time m_maxRequestPeriod
uint32_t m_maxRreqId
Time m_maxRreqTime
uint8_t m_maxSalvageCount
uint32_t m_maxSendBuffLen
Time m_minLifeTime
Ptr< Nodem_node
Time m_nodeTraversalTime
std::map< Ipv4Address, Timerm_nonPropReqTimer
Time m_nonpropRequestTimeout
uint32_t m_numPriorityQueues
DsrOptionList_t m_options
 List of DSR Options supported.
Time m_passiveAckTimeout
std::map< PassiveKey, Timerm_passiveAckTimer
std::map< PassiveKey, uint32_t > m_passiveCnt
uint32_t m_passiveRetries
std::map< uint32_t, Ptr
< dsr::DsrNetworkQueue > > 
m_priorityQueue
uint32_t m_requestId
Time m_requestPeriod
uint32_t m_requestTableIds
uint32_t m_requestTableSize
Time m_retransIncr
Ptr< dsr::RouteCachem_routeCache
std::string m_routeSortType
uint32_t m_rreqRetries
Ptr< dsr::RreqTablem_rreqTable
SendBuffer m_sendBuffer
Time m_sendBufferTimeout
Time m_sendBuffInterval
Timer m_sendBuffTimer
uint32_t m_sendRetries
uint64_t m_stabilityDecrFactor
uint64_t m_stabilityIncrFactor
bool m_subRoute
uint32_t m_tryPassiveAcks
Ptr< UniformRandomVariablem_uniformRandomVariable
 Provides uniform random variables.
Time m_useExtends
uint8_t segsLeft

Additional Inherited Members

- Public Types inherited from ns3::IpL4Protocol
typedef Callback< void, Ptr
< Packet >, Ipv4Address,
Ipv4Address, uint8_t, Ptr
< Ipv4Route > > 
DownTargetCallback
typedef Callback< void, Ptr
< Packet >, Ipv6Address,
Ipv6Address, uint8_t, Ptr
< Ipv6Route > > 
DownTargetCallback6
enum  RxStatus { RX_OK, RX_CSUM_FAILED, RX_ENDPOINT_CLOSED, RX_ENDPOINT_UNREACH }

Detailed Description

Dsr Routing base.

Definition at line 94 of file dsr-routing.h.

Member Typedef Documentation

Define the list to hold DSR options.

Definition at line 509 of file dsr-routing.h.

Constructor & Destructor Documentation

ns3::dsr::DsrRouting::DsrRouting ( )

Constructor.

Definition at line 268 of file dsr-routing.cc.

References Insert(), m_sendBuffTimer, m_uniformRandomVariable, NS_LOG_FUNCTION_NOARGS, ns3::Timer::Schedule(), ns3::Seconds(), SendBuffTimerExpire(), and ns3::Timer::SetFunction().

+ Here is the call graph for this function:

ns3::dsr::DsrRouting::~DsrRouting ( )
virtual

Destructor.

Definition at line 303 of file dsr-routing.cc.

References NS_LOG_FUNCTION_NOARGS.

Member Function Documentation

bool ns3::dsr::DsrRouting::AddRoute ( RouteCacheEntry rt)
bool ns3::dsr::DsrRouting::AddRoute_Link ( RouteCacheEntry::IP_VECTOR  nodelist,
Ipv4Address  source 
)

Definition at line 504 of file dsr-routing.cc.

References ns3::dsr::RouteCache::AddRoute_Link(), ns3::dsr::ErrorBuffer::DropPacketForErrLink(), m_errorBuffer, m_routeCache, and SearchNextHop().

+ Here is the call graph for this function:

int64_t ns3::dsr::DsrRouting::AssignStreams ( int64_t  stream)

Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Definition at line 2225 of file dsr-routing.cc.

References m_uniformRandomVariable, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::CallCancelPacketTimer ( uint16_t  ackId,
Ipv4Header const &  ipv4Header,
Ipv4Address  realSrc,
Ipv4Address  realDst 
)

Definition at line 1825 of file dsr-routing.cc.

References CancelNetworkPacketTimer(), ns3::Ipv4Header::GetDestination(), ns3::Ipv4Header::GetSource(), ns3::Simulator::Now(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::CancelRreqTimer ( Ipv4Address  dst,
bool  isRemove 
)

Cancel the route request timer.

Parameters
dstThe dst address of the route request timer
isRemovewhether to remove the route request entry or not

Definition at line 2519 of file dsr-routing.cc.

References m_addressReqTimer, m_nonPropReqTimer, m_rreqTable, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::dsr::RreqTable::RemoveRreqEntry().

Referenced by RouteRequestTimerExpire(), and SendErrorRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::CheckSendBuffer ( )

Check the send buffer of packets with route when send buffer timer expire.

Definition at line 808 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::Packet::CopyData(), data, ns3::dsr::DSR_CONTROL_PACKET, ns3::dsr::DsrNetworkQueue::Enqueue(), ns3::dsr::MaintainBuffer::Enqueue(), ns3::dsr::SendBuffer::GetBuffer(), ns3::dsr::DsrOptionField::GetDsrOptionsOffset(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorDst(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorSrc(), GetIDfromIP(), ns3::Ipv4::GetInterfaceForAddress(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::Ipv4::GetNetDevice(), GetPriority(), ns3::dsr::DsrOptionRerrUnreachHeader::GetSalvage(), ns3::dsr::SendBuffer::GetSize(), ns3::Packet::GetSize(), ns3::dsr::DsrOptionRerrUnreachHeader::GetUnreachNode(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::Timer::IsSuspended(), ns3::dsr::RouteCache::LookupRoute(), ns3::dsr::NetworkKey::m_ackId, ns3::dsr::PassiveKey::m_ackId, m_addressForwardCnt, ns3::dsr::NetworkKey::m_destination, ns3::dsr::PassiveKey::m_destination, m_ip, m_ipv4Route, m_mainAddress, m_maintainBuffer, m_maxMaintainTime, ns3::dsr::NetworkKey::m_nextHop, ns3::dsr::NetworkKey::m_ourAdd, m_passiveCnt, m_priorityQueue, m_routeCache, ns3::dsr::PassiveKey::m_segsLeft, m_sendBuffer, m_sendBuffInterval, m_sendBuffTimer, ns3::dsr::NetworkKey::m_source, ns3::dsr::PassiveKey::m_source, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_INFO, PacketNewRoute(), ns3::Packet::RemoveAtStart(), ns3::Packet::RemoveHeader(), ns3::Timer::Resume(), ns3::Simulator::Schedule(), ScheduleNetworkPacketRetry(), SchedulePassivePacketRetry(), Scheduler(), SearchNextHop(), SendBuffTimerExpire(), SendPacket(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrOptionRerrHeader::SetErrorType(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::Ipv4Route::SetOutputDevice(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), ns3::Timer::Suspend(), and ns3::dsr::RouteCache::UseExtends().

Referenced by SendBuffTimerExpire().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::DeleteAllRoutesIncludeLink ( Ipv4Address  errorSrc,
Ipv4Address  unreachNode,
Ipv4Address  node 
)

Definition at line 519 of file dsr-routing.cc.

References ns3::dsr::RouteCache::DeleteAllRoutesIncludeLink(), and m_routeCache.

+ Here is the call graph for this function:

IpL4Protocol::DownTargetCallback ns3::dsr::DsrRouting::GetDownTarget ( void  ) const
virtual

This method allows a caller to get the current down target callback set for this L4 protocol, for

Returns
current Callback for the L4 protocol

Implements ns3::IpL4Protocol.

Definition at line 3123 of file dsr-routing.cc.

References m_downTarget.

IpL4Protocol::DownTargetCallback6 ns3::dsr::DsrRouting::GetDownTarget6 ( void  ) const
virtual

Implements ns3::IpL4Protocol.

Definition at line 3129 of file dsr-routing.cc.

References NS_FATAL_ERROR.

uint8_t ns3::dsr::DsrRouting::GetExtensionNumber ( ) const

Get the extension number.

Returns
extension number
uint16_t ns3::dsr::DsrRouting::GetIDfromIP ( Ipv4Address  address)

Get the node id from ip address.

Returns
the node id

Definition at line 620 of file dsr-routing.cc.

References ns3::Ipv4::GetAddress(), ns3::Ipv4InterfaceAddress::GetLocal(), ns3::NodeList::GetNNodes(), GetNode(), and ns3::Object::GetObject().

Referenced by CheckSendBuffer(), ForwardErrPacket(), ForwardPacket(), PacketNewRoute(), SalvagePacket(), Send(), SendAck(), SendErrorRequest(), SendGratuitousReply(), SendInitialRequest(), SendPacketFromBuffer(), and SendUnreachError().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ipv4Address ns3::dsr::DsrRouting::GetIPfromID ( uint16_t  id)

Get the ip address from id.

Returns
the ip address for the id

Definition at line 636 of file dsr-routing.cc.

References ns3::Ipv4::GetAddress(), ns3::Ipv4InterfaceAddress::GetLocal(), GetNode(), ns3::Object::GetObject(), and NS_LOG_DEBUG.

Referenced by PromiscReceive(), and Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ipv4Address ns3::dsr::DsrRouting::GetIPfromMAC ( Mac48Address  address)

Get the Ip address from mac address.

Returns
the ip address

Definition at line 530 of file dsr-routing.cc.

References ns3::Ipv4::GetAddress(), ns3::Ipv4InterfaceAddress::GetLocal(), ns3::Ipv4::GetNetDevice(), ns3::NodeList::GetNNodes(), GetNode(), ns3::Object::GetObject(), and NS_LOG_FUNCTION.

Referenced by PromiscReceive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< Node > ns3::dsr::DsrRouting::GetNode ( void  ) const

Get the node.

Returns
the node

Definition at line 457 of file dsr-routing.cc.

References m_node, and NS_LOG_FUNCTION_NOARGS.

Referenced by GetIDfromIP(), GetIPfromID(), GetIPfromMAC(), and Receive().

+ Here is the caller graph for this function:

Ptr<Node> ns3::dsr::DsrRouting::GetNodeWithAddress ( Ipv4Address  ipv4Address)
Ptr< dsr::DsrOptions > ns3::dsr::DsrRouting::GetOption ( int  optionNumber)

Get the option corresponding to optionNumber.

Parameters
optionNumberthe option number of the option to retrieve
Returns
a matching Dsr option

Definition at line 3140 of file dsr-routing.cc.

References m_options.

Referenced by PromiscReceive(), and Receive().

+ Here is the caller graph for this function:

uint32_t ns3::dsr::DsrRouting::GetPriority ( DsrMessageType  messageType)
int ns3::dsr::DsrRouting::GetProtocolNumber ( void  ) const
virtual

Get the dsr protocol number.

Returns
protocol number

Implements ns3::IpL4Protocol.

Definition at line 613 of file dsr-routing.cc.

References PROT_NUMBER.

Referenced by SendRealDown().

+ Here is the caller graph for this function:

Ptr< dsr::RreqTable > ns3::dsr::DsrRouting::GetRequestTable ( ) const

Get the request table.

Returns
the request table

Definition at line 483 of file dsr-routing.cc.

References m_rreqTable.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< dsr::RouteCache > ns3::dsr::DsrRouting::GetRouteCache ( ) const

Get the route cache.

Returns
the route cache

Definition at line 470 of file dsr-routing.cc.

References m_routeCache.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

TypeId ns3::dsr::DsrRouting::GetTypeId ( void  )
static

Get the type identificator.

This method returns the TypeId associated to ns3::dsr::DsrRouting.

Returns
type identificator

Attributes defined for this type:

  • RouteCache: The route cache for saving routes from route discovery process.
  • RreqTable: The request table to manage route requests.
  • MaxSendBuffLen: Maximum number of packets that can be stored in send buffer.
  • MaxSendBuffTime: Maximum time packets can be queued in the send buffer .
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +30000000000.0ns
    • Flags: construct write read
  • MaxMaintLen: Maximum number of packets that can be stored in maintenance buffer.
  • MaxMaintTime: Maximum time packets can be queued in maintenance buffer.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +30000000000.0ns
    • Flags: construct write read
  • MaxCacheLen: Maximum number of route entries that can be stored in route cache.
  • RouteCacheTimeout: Maximum time the route cache can be queued in route cache.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +300000000000.0ns
    • Flags: construct write read
  • MaxEntriesEachDst: Maximum number of route entries for a single destination to respond.
  • SendBuffInterval: How often to check send buffer for packet with route.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +500000000000.0ns
    • Flags: construct write read
  • NodeTraversalTime: The time it takes to traverse two neighboring nodes.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +40000000.0ns
    • Flags: construct write read
  • RreqRetries: Maximum number of retransmissions for request discovery of a route.
  • MaintenanceRetries: Maximum number of retransmissions for data packets from maintenance buffer.
  • RequestTableSize: Maximum number of request entries in the request table.
  • RequestIdSize: Maximum number of request source Ids in the request table.
  • UniqueRequestIdSize: Maximum number of request Ids in the request table for a single destination.
  • NonPropRequestTimeout: The timeout value for non-propagation request.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +30000000.0ns
    • Flags: construct write read
  • DiscoveryHopLimit: The max discovery hop limit for route requests.
    • Set with class: ns3::DoubleValue
    • Underlying type: uint32_t 1:4.29497e+09
    • Initial value: 255
    • Flags: construct write read
  • MaxSalvageCount: The max salvage count for a single data packet.
  • BlacklistTimeout: The time for a neighbor to stay in blacklist.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • GratReplyHoldoff: The time for gratuitous reply entry to expire.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +1000000000.0ns
    • Flags: construct write read
  • BroadcastJitter: The jitter time to avoid collision for broadcast packets.
  • PassiveAckTimeout: The time a packet in maintenance buffer wait for passive acknowledgment.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +100000000.0ns
    • Flags: construct write read
  • TryPassiveAcks: The number of passive acknowledgment to use.
  • RequestPeriod: The base time interval between route requests.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +500000000.0ns
    • Flags: construct write read
  • MaxRequestPeriod: The max time interval between route requests.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • GraReplyTableSize: The gratuitous reply table size.
  • CacheType: Use Link Cache or use Path Cache
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: LinkCache
    • Flags: construct write read
  • StabilityDecrFactor: The stability decrease factor for link cache
    • Set with class: ns3::UintegerValue
    • Underlying type: uint64_t 0:18446744073709551615
    • Initial value: 2
    • Flags: construct write read
  • StabilityIncrFactor: The stability increase factor for link cache
    • Set with class: ns3::UintegerValue
    • Underlying type: uint64_t 0:18446744073709551615
    • Initial value: 4
    • Flags: construct write read
  • InitStability: The initial stability factor for link cache
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +25000000000.0ns
    • Flags: construct write read
  • MinLifeTime: The minimal life time for link cache
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +1000000000.0ns
    • Flags: construct write read
  • UseExtends: The extension time for link cache
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +120000000000.0ns
    • Flags: construct write read
  • EnableSubRoute: Enables saving of sub route when receiving route error messages, only available when using path route cache
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read
  • RetransIncr: The increase time for retransmission timer when facing network congestion
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +20000000.0ns
    • Flags: construct write read
  • MaxNetworkQueueSize: The max number of packet to save in the network queue.
  • MaxNetworkQueueDelay: The max time for a packet to stay in the network queue.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +30000000000.0ns
    • Flags: construct write read
  • NumPriorityQueues: The max number of packet to save in the network queue.

Attributes defined in parent class ns3::IpL4Protocol:

  • ProtocolNumber: The Ip protocol number.

TraceSources defined for this type:

  • Tx: Send DSR packet.
  • Drop: Drop DSR packet

Reimplemented from ns3::IpL4Protocol.

Definition at line 101 of file dsr-routing.cc.

References GetRequestTable(), GetRouteCache(), m_blacklistTimeout, m_broadcastJitter, m_cacheType, m_discoveryHopLimit, m_dropTrace, m_graReplyTableSize, m_gratReplyHoldoff, m_initStability, m_maxCacheLen, m_maxCacheTime, m_maxEntriesEachDst, m_maxMaintainLen, m_maxMaintainTime, m_maxMaintRexmt, m_maxNetworkDelay, m_maxNetworkSize, m_maxRequestPeriod, m_maxRreqId, m_maxSalvageCount, m_maxSendBuffLen, m_minLifeTime, m_nodeTraversalTime, m_nonpropRequestTimeout, m_numPriorityQueues, m_passiveAckTimeout, m_requestPeriod, m_requestTableIds, m_requestTableSize, m_retransIncr, m_rreqRetries, m_sendBufferTimeout, m_sendBuffInterval, m_stabilityDecrFactor, m_stabilityIncrFactor, m_subRoute, m_tryPassiveAcks, m_txPacketTrace, m_useExtends, ns3::MakeTraceSourceAccessor(), ns3::MilliSeconds(), ns3::Seconds(), ns3::TypeId::SetParent(), SetRequestTable(), and SetRouteCache().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::IncreaseRetransTimer ( )

Definition at line 1572 of file dsr-routing.cc.

References ns3::dsr::DSR_DATA_PACKET, GetPriority(), ns3::dsr::DsrNetworkQueue::GetQueue(), m_addressForwardTimer, m_priorityQueue, m_retransIncr, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by PriorityScheduler().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::Insert ( Ptr< dsr::DsrOptions option)

Insert a new Dsr Option.

Parameters
optionthe option to insert

Definition at line 3135 of file dsr-routing.cc.

References m_options.

Referenced by DsrRouting().

+ Here is the caller graph for this function:

bool ns3::dsr::DsrRouting::IsLinkCache ( )

used to direct to route cache

Definition at line 489 of file dsr-routing.cc.

References ns3::dsr::RouteCache::IsLinkCache(), and m_routeCache.

+ Here is the call graph for this function:

bool ns3::dsr::DsrRouting::LookupRoute ( Ipv4Address  id,
RouteCacheEntry rt 
)

Definition at line 499 of file dsr-routing.cc.

References ns3::dsr::RouteCache::LookupRoute(), and m_routeCache.

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::NotifyNewAggregate ( void  )
protectedvirtual

This method is invoked whenever two sets of objects are aggregated together. It is invoked exactly once for each object in both sets. This method can be overriden by subclasses who wish to be notified of aggregation events. These subclasses must chain up to their base class NotifyNewAggregate method. It is safe to call GetObject and AggregateObject from within this method.

This function must be implemented in the stack that needs to notify other stacks connected to the node of their presence in the node.

Reimplemented from ns3::Object.

Definition at line 309 of file dsr-routing.cc.

References ns3::Object::GetObject(), ns3::Ipv4L3Protocol::Insert(), m_ip, m_ipv4, m_node, ns3::MakeCallback(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), ns3::Ipv4L3Protocol::Send(), SetDownTarget(), SetNode(), and Start().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::PacketNewRoute ( Ptr< Packet packet,
Ipv4Address  source,
Ipv4Address  destination,
uint8_t  protocol 
)

When route vector corrupted, originate a new packet, normally not happening.

Definition at line 1057 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::dsr::SendBuffer::Enqueue(), ns3::dsr::MaintainBuffer::Enqueue(), GetIDfromIP(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::Packet::GetUid(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::dsr::RouteCache::LookupRoute(), ns3::dsr::NetworkKey::m_ackId, ns3::dsr::PassiveKey::m_ackId, m_addressForwardCnt, m_addressReqTimer, ns3::dsr::NetworkKey::m_destination, ns3::dsr::PassiveKey::m_destination, m_mainAddress, m_maintainBuffer, m_maxMaintainTime, ns3::dsr::NetworkKey::m_nextHop, m_nonPropReqTimer, ns3::dsr::NetworkKey::m_ourAdd, m_passiveCnt, m_routeCache, ns3::dsr::PassiveKey::m_segsLeft, m_sendBuffer, m_sendBufferTimeout, ns3::dsr::NetworkKey::m_source, ns3::dsr::PassiveKey::m_source, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ScheduleNetworkPacketRetry(), SchedulePassivePacketRetry(), SearchNextHop(), SendInitialRequest(), SendPacket(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), and ns3::dsr::RouteCache::UseExtends().

Referenced by CheckSendBuffer(), RouteRequestTimerExpire(), SalvagePacket(), Send(), SendErrorRequest(), SendRerrWhenBreaksLinkToNextHop(), and SendUnreachError().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::PrintVector ( std::vector< Ipv4Address > &  vec)

Print the route vector.

Definition at line 548 of file dsr-routing.cc.

References NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by NetworkScheduleTimerExpire().

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::PriorityScheduler ( uint32_t  priority,
bool  continueWithFirst 
)
uint8_t ns3::dsr::DsrRouting::Process ( Ptr< Packet > &  packet,
Ipv4Header const &  ipv4Header,
Ipv4Address  dst,
uint8_t *  nextHeader,
uint8_t  protocol,
bool &  isDropped 
)

Process method Called from Ipv4L3Protocol::Receive.

Parameters
packetthe packet
offsetthe offset of the extension to process
dstdestination address of the packet received (i.e. us)
nextHeaderthe next header
isDroppedif the packet must be dropped
Returns
the size processed
enum IpL4Protocol::RxStatus ns3::dsr::DsrRouting::Receive ( Ptr< Packet p,
Ipv4Header const &  header,
Ptr< Ipv4Interface incomingInterface 
)
virtual
enum IpL4Protocol::RxStatus ns3::dsr::DsrRouting::Receive ( Ptr< Packet p,
Ipv6Address src,
Ipv6Address dst,
Ptr< Ipv6Interface incomingInterface 
)
virtual
Parameters
ppacket to forward up
srcsource IPv6 address
dstdestination IPv6 address
incomingInterfacethe Ipv6Interface on which the packet arrived

Called from lower-level layers to send the packet up in the stack. Not implemented (IPv6).

Implements ns3::IpL4Protocol.

Definition at line 3100 of file dsr-routing.cc.

References NS_LOG_FUNCTION, and ns3::IpL4Protocol::RX_ENDPOINT_UNREACH.

void ns3::dsr::DsrRouting::SalvagePacket ( Ptr< const Packet packet,
Ipv4Address  source,
Ipv4Address  dst,
uint8_t  protocol 
)

Definition at line 1957 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::dsr::RouteCache::CheckUniqueAckId(), ns3::Packet::Copy(), ns3::Packet::CopyData(), ns3::dsr::DSR_DATA_PACKET, ns3::dsr::DsrNetworkQueue::Enqueue(), ns3::dsr::DsrOptionField::GetDsrOptionsOffset(), GetIDfromIP(), ns3::Ipv4::GetInterfaceForAddress(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::Ipv4::GetNetDevice(), GetPriority(), ns3::dsr::DsrOptionSRHeader::GetSalvage(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::dsr::RouteCache::LookupRoute(), m_ackId, m_ip, m_ipv4Route, m_mainAddress, m_maxSalvageCount, m_priorityQueue, m_routeCache, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, PacketNewRoute(), ns3::Packet::RemoveAtStart(), ns3::Packet::RemoveHeader(), Scheduler(), SearchNextHop(), ns3::dsr::DsrOptionAckReqHeader::SetAckId(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrOptionSRHeader::SetNumberAddress(), ns3::Ipv4Route::SetOutputDevice(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), and ns3::dsr::RouteCache::UseExtends().

Referenced by CancelPacketTimerNextHop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::ScheduleCachedReply ( Ptr< Packet packet,
Ipv4Address  source,
Ipv4Address  destination,
Ptr< Ipv4Route route,
double  hops 
)

Definition at line 2849 of file dsr-routing.cc.

References ns3::UniformRandomVariable::GetValue(), m_nodeTraversalTime, m_uniformRandomVariable, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and SendReply().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::ScheduleInitialReply ( Ptr< Packet packet,
Ipv4Address  source,
Ipv4Address  nextHop,
Ptr< Ipv4Route route 
)

Definition at line 2838 of file dsr-routing.cc.

References NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and SendReply().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::ScheduleInterRequest ( Ptr< Packet packet)
void ns3::dsr::DsrRouting::Scheduler ( uint32_t  priority)

Definition at line 1492 of file dsr-routing.cc.

References NS_LOG_FUNCTION, and PriorityScheduler().

Referenced by CheckSendBuffer(), ForwardErrPacket(), SalvagePacket(), SendAck(), SendPacket(), SendPacketFromBuffer(), SendReply(), SendRequest(), and SendUnreachError().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::ScheduleRreqRetry ( Ptr< Packet packet,
std::vector< Ipv4Address address,
bool  nonProp,
uint32_t  requestId,
uint8_t  protocol 
)

Schedule the route request retry.

Parameters
dstThe dst address of the route request

Definition at line 2568 of file dsr-routing.cc.

References ns3::Timer::CANCEL_ON_DESTROY, ns3::dsr::RreqTable::GetRreqCnt(), ns3::Time::GetSeconds(), m_addressReqTimer, m_maxRequestPeriod, m_nonPropReqTimer, m_nonpropRequestTimeout, m_requestPeriod, m_rreqTable, NS_LOG_DEBUG, NS_LOG_FUNCTION, and RouteRequestTimerExpire().

Referenced by RouteRequestTimerExpire(), SendErrorRequest(), and SendInitialRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ipv4Address ns3::dsr::DsrRouting::SearchNextHop ( Ipv4Address  ipv4Address,
std::vector< Ipv4Address > &  vec 
)

Get the next hop of the route.

Returns
the next hop address of the route

Definition at line 568 of file dsr-routing.cc.

References NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by AddRoute(), AddRoute_Link(), CheckSendBuffer(), PacketNewRoute(), RouteRequestTimerExpire(), SalvagePacket(), Send(), SendErrorRequest(), SendRerrWhenBreaksLinkToNextHop(), and SendUnreachError().

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::Send ( Ptr< Packet packet,
Ipv4Address  source,
Ipv4Address  destination,
uint8_t  protocol,
Ptr< Ipv4Route route 
)

Definition at line 1300 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::dsr::SendBuffer::Enqueue(), ns3::dsr::MaintainBuffer::Enqueue(), GetIDfromIP(), ns3::UniformRandomVariable::GetInteger(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::dsr::RreqTable::GetRreqCnt(), ns3::Packet::GetSize(), ns3::Packet::GetUid(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::dsr::RouteCache::LookupRoute(), ns3::dsr::NetworkKey::m_ackId, ns3::dsr::PassiveKey::m_ackId, m_addressForwardCnt, m_addressReqTimer, ns3::dsr::NetworkKey::m_destination, ns3::dsr::PassiveKey::m_destination, m_downTarget, m_mainAddress, m_maintainBuffer, m_maxMaintainTime, ns3::dsr::NetworkKey::m_nextHop, m_nonPropReqTimer, ns3::dsr::NetworkKey::m_ourAdd, m_passiveCnt, m_routeCache, m_rreqTable, ns3::dsr::PassiveKey::m_segsLeft, m_sendBuffer, m_sendBufferTimeout, ns3::dsr::NetworkKey::m_source, ns3::dsr::PassiveKey::m_source, m_uniformRandomVariable, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, PacketNewRoute(), ns3::Simulator::Schedule(), ScheduleNetworkPacketRetry(), SchedulePassivePacketRetry(), SearchNextHop(), SendInitialRequest(), SendPacket(), SendPacketFromBuffer(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrFsHeader::SetPayloadLength(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), and ns3::dsr::RouteCache::UseExtends().

Referenced by ns3::DsrHelper::Create().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SendBuffTimerExpire ( )

The send buffer timer expire.

Definition at line 798 of file dsr-routing.cc.

References ns3::Timer::Cancel(), CheckSendBuffer(), ns3::Timer::IsRunning(), m_sendBuffInterval, m_sendBuffTimer, and ns3::Timer::Schedule().

Referenced by CheckSendBuffer(), and DsrRouting().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SendErrorRequest ( DsrOptionRerrUnreachHeader rerr,
uint8_t  protocol 
)

Definition at line 2419 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::dsr::DsrOptionRreqHeader::AddNodeAddress(), ns3::Packet::AddPacketTag(), CancelRreqTimer(), ns3::dsr::RreqTable::CheckUniqueRreqId(), ns3::Packet::Copy(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorDst(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorSrc(), GetIDfromIP(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::dsr::DsrOptionRerrUnreachHeader::GetOriginalDst(), ns3::dsr::DsrOptionRerrUnreachHeader::GetSalvage(), ns3::dsr::DsrOptionRerrUnreachHeader::GetUnreachNode(), ns3::dsr::RouteCache::IsLinkCache(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::dsr::RouteCache::LookupRoute(), m_addressReqTimer, m_discoveryHopLimit, m_downTarget, m_mainAddress, m_nonPropReqTimer, m_requestId, m_routeCache, m_rreqTable, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, PacketNewRoute(), ScheduleRreqRetry(), SearchNextHop(), SendPacketFromBuffer(), SendRequest(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), ns3::SocketIpTtlTag::SetTtl(), and ns3::dsr::RouteCache::UseExtends().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::SendPacketFromBuffer ( DsrOptionSRHeader const &  sourceRoute,
Ipv4Address  nextHop,
uint8_t  protocol 
)

Definition at line 1609 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::Packet::CopyData(), data, ns3::dsr::SendBuffer::Dequeue(), ns3::dsr::ErrorBuffer::Dequeue(), ns3::dsr::DSR_CONTROL_PACKET, ns3::dsr::DsrNetworkQueue::Enqueue(), ns3::dsr::MaintainBuffer::Enqueue(), ns3::dsr::SendBuffer::Find(), ns3::dsr::ErrorBuffer::Find(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorDst(), ns3::dsr::DsrOptionRerrUnreachHeader::GetErrorSrc(), GetIDfromIP(), ns3::UniformRandomVariable::GetInteger(), ns3::Ipv4::GetInterfaceForAddress(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::Ipv4::GetNetDevice(), ns3::dsr::DsrOptionSRHeader::GetNodesAddress(), ns3::dsr::DsrOptionRerrUnreachHeader::GetOriginalDst(), ns3::dsr::SendBuffEntry::GetPacket(), ns3::dsr::ErrorBuffEntry::GetPacket(), GetPriority(), ns3::dsr::DsrOptionRerrUnreachHeader::GetSalvage(), ns3::dsr::SendBuffer::GetSize(), ns3::dsr::ErrorBuffer::GetSize(), ns3::Packet::GetSize(), ns3::dsr::DsrOptionRerrUnreachHeader::GetUnreachNode(), ns3::dsr::RouteCache::IsLinkCache(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::dsr::NetworkKey::m_ackId, ns3::dsr::PassiveKey::m_ackId, m_addressForwardCnt, ns3::dsr::NetworkKey::m_destination, ns3::dsr::PassiveKey::m_destination, m_downTarget, m_errorBuffer, m_ip, m_ipv4Route, m_mainAddress, m_maintainBuffer, m_maxMaintainTime, ns3::dsr::NetworkKey::m_nextHop, ns3::dsr::NetworkKey::m_ourAdd, m_passiveCnt, m_priorityQueue, m_routeCache, ns3::dsr::PassiveKey::m_segsLeft, m_sendBuffer, ns3::dsr::NetworkKey::m_source, ns3::dsr::PassiveKey::m_source, m_uniformRandomVariable, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::Packet::RemoveAtStart(), ns3::Packet::RemoveHeader(), ns3::Simulator::Schedule(), ScheduleNetworkPacketRetry(), SchedulePassivePacketRetry(), Scheduler(), SendPacket(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrOptionRerrUnreachHeader::SetErrorDst(), ns3::dsr::DsrOptionRerrUnreachHeader::SetErrorSrc(), ns3::dsr::DsrOptionRerrHeader::SetErrorType(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionRerrUnreachHeader::SetOriginalDst(), ns3::Ipv4Route::SetOutputDevice(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionRerrUnreachHeader::SetSalvage(), ns3::dsr::DsrFsHeader::SetSourceId(), ns3::dsr::DsrOptionRerrUnreachHeader::SetUnreachNode(), and ns3::dsr::RouteCache::UseExtends().

Referenced by RouteRequestTimerExpire(), Send(), and SendErrorRequest().

+ Here is the caller graph for this function:

bool ns3::dsr::DsrRouting::SendRealDown ( DsrNetworkQueueEntry newEntry)
void ns3::dsr::DsrRouting::SendRequestAndIncrement ( Ptr< Packet packet,
Ipv4Address  source,
Ipv4Address  destination 
)
void ns3::dsr::DsrRouting::SendRerrWhenBreaksLinkToNextHop ( Ipv4Address  nextHop,
uint8_t  protocol 
)
private

Send the route error message when the link breaks to the next hop.

Definition at line 664 of file dsr-routing.cc.

References ns3::Packet::Copy(), ns3::dsr::RouteCache::DeleteAllRoutesIncludeLink(), ns3::dsr::MaintainBuffer::Dequeue(), ns3::dsr::MaintainBuffer::Find(), ns3::dsr::MaintainBuffEntry::GetAckId(), ns3::dsr::DsrOptionField::GetDsrOptionsOffset(), ns3::dsr::MaintainBuffEntry::GetDst(), ns3::UniformRandomVariable::GetInteger(), ns3::dsr::MaintainBuffEntry::GetNextHop(), ns3::dsr::DsrOptionSRHeader::GetNodesAddress(), ns3::dsr::MaintainBuffEntry::GetOurAdd(), ns3::dsr::MaintainBuffEntry::GetPacket(), ns3::dsr::DsrOptionSRHeader::GetSalvage(), ns3::dsr::MaintainBuffEntry::GetSegsLeft(), ns3::dsr::MaintainBuffer::GetSize(), ns3::dsr::MaintainBuffEntry::GetSrc(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::dsr::RouteCache::LookupRoute(), ns3::dsr::NetworkKey::m_ackId, ns3::dsr::PassiveKey::m_ackId, m_addressForwardCnt, ns3::dsr::NetworkKey::m_destination, ns3::dsr::PassiveKey::m_destination, m_mainAddress, m_maintainBuffer, m_maxSalvageCount, ns3::dsr::NetworkKey::m_nextHop, ns3::dsr::NetworkKey::m_ourAdd, m_passiveCnt, m_routeCache, ns3::dsr::PassiveKey::m_segsLeft, ns3::dsr::NetworkKey::m_source, ns3::dsr::PassiveKey::m_source, m_uniformRandomVariable, ns3::MilliSeconds(), NS_LOG_DEBUG, NS_LOG_FUNCTION, PacketNewRoute(), ns3::Packet::RemoveHeader(), ns3::Simulator::Schedule(), ScheduleNetworkPacketRetry(), SchedulePassivePacketRetry(), SearchNextHop(), SendPacket(), SendUnreachError(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrOptionSRHeader::SetNumberAddress(), ns3::dsr::DsrOptionSRHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), and ns3::dsr::RouteCache::UseExtends().

Referenced by Start().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SendUnreachError ( Ipv4Address  errorHop,
Ipv4Address  destination,
Ipv4Address  originalDst,
uint8_t  salvage,
uint8_t  protocol 
)

Definition at line 1161 of file dsr-routing.cc.

References ns3::dsr::DsrOptionField::AddDsrOption(), ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::dsr::DSR_CONTROL_PACKET, ns3::dsr::DsrNetworkQueue::Enqueue(), ns3::dsr::ErrorBuffer::Enqueue(), GetIDfromIP(), ns3::Ipv4::GetInterfaceForAddress(), ns3::dsr::DsrOptionHeader::GetLength(), ns3::Ipv4::GetNetDevice(), GetPriority(), ns3::Packet::GetSize(), ns3::Packet::GetUid(), ns3::dsr::RouteCacheEntry::GetVector(), ns3::dsr::RouteCache::IsLinkCache(), ns3::dsr::RouteCache::LookupRoute(), m_addressReqTimer, m_errorBuffer, m_ip, m_ipv4Route, m_mainAddress, m_nonPropReqTimer, m_priorityQueue, m_routeCache, m_sendBufferTimeout, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, PacketNewRoute(), Scheduler(), SearchNextHop(), SendInitialRequest(), ns3::dsr::DsrFsHeader::SetDestId(), ns3::dsr::DsrOptionRerrUnreachHeader::SetErrorDst(), ns3::dsr::DsrOptionRerrUnreachHeader::SetErrorSrc(), ns3::dsr::DsrOptionRerrHeader::SetErrorType(), ns3::dsr::DsrFsHeader::SetMessageType(), ns3::dsr::DsrFsHeader::SetNextHeader(), ns3::dsr::DsrOptionSRHeader::SetNodesAddress(), ns3::dsr::DsrOptionRerrUnreachHeader::SetOriginalDst(), ns3::Ipv4Route::SetOutputDevice(), ns3::dsr::DsrFsHeader::SetPayloadLength(), SetRoute(), ns3::dsr::DsrOptionRerrUnreachHeader::SetSalvage(), ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft(), ns3::dsr::DsrFsHeader::SetSourceId(), ns3::dsr::DsrOptionRerrUnreachHeader::SetUnreachNode(), and ns3::dsr::RouteCache::UseExtends().

Referenced by NetworkScheduleTimerExpire(), and SendRerrWhenBreaksLinkToNextHop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SetDownTarget ( IpL4Protocol::DownTargetCallback  cb)
virtual

This method allows a caller to set the current down target callback set for this L4 protocol

Parameters
cbcurrent Callback for the L4 protocol

Implements ns3::IpL4Protocol.

Definition at line 3110 of file dsr-routing.cc.

References m_downTarget.

Referenced by ns3::DsrHelper::Create(), and NotifyNewAggregate().

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SetDownTarget6 ( IpL4Protocol::DownTargetCallback6  callback)
virtual

Implements ns3::IpL4Protocol.

Definition at line 3116 of file dsr-routing.cc.

References NS_FATAL_ERROR.

void ns3::dsr::DsrRouting::SetNode ( Ptr< Node node)

Set the node.

Parameters
nodethe node to set

Definition at line 451 of file dsr-routing.cc.

References m_node.

Referenced by ns3::DsrMainHelper::Install(), and NotifyNewAggregate().

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::SetRequestTable ( Ptr< dsr::RreqTable r)

Set the node.

Parameters
therequest table to set

Definition at line 476 of file dsr-routing.cc.

References m_rreqTable.

Referenced by GetTypeId(), and Start().

+ Here is the caller graph for this function:

Ptr< Ipv4Route > ns3::dsr::DsrRouting::SetRoute ( Ipv4Address  nextHop,
Ipv4Address  srcAddress 
)
void ns3::dsr::DsrRouting::SetRouteCache ( Ptr< dsr::RouteCache r)

Set the route cache.

Parameters
theroute cache to set

Definition at line 463 of file dsr-routing.cc.

References m_routeCache.

Referenced by GetTypeId(), and Start().

+ Here is the caller graph for this function:

void ns3::dsr::DsrRouting::Start ( void  )
private

Definition at line 336 of file dsr-routing.cc.

References ns3::dsr::RouteCache::AddArpCache(), ns3::Ipv4L3Protocol::GetAddress(), ns3::Ipv4Interface::GetArpCache(), ns3::Ipv4InterfaceAddress::GetBroadcast(), ns3::Ipv4L3Protocol::GetInterface(), ns3::Ipv4L3Protocol::GetInterfaceForAddress(), ns3::Ipv4InterfaceAddress::GetLocal(), ns3::Ipv4L3Protocol::GetNetDevice(), ns3::Ipv4L3Protocol::GetNInterfaces(), ns3::Object::GetObject(), ns3::Time::GetSeconds(), ns3::dsr::RouteCache::GetTxErrorCallback(), m_broadcast, m_cacheType, m_discoveryHopLimit, m_errorBuffer, m_graReply, m_graReplyTableSize, m_initStability, m_ipv4, m_mainAddress, m_maintainBuffer, m_maxCacheLen, m_maxCacheTime, m_maxEntriesEachDst, m_maxMaintainLen, m_maxMaintainTime, m_maxNetworkDelay, m_maxNetworkSize, m_maxRreqId, m_maxSendBuffLen, m_minLifeTime, m_numPriorityQueues, m_priorityQueue, m_requestTableIds, m_requestTableSize, m_sendBuffer, m_sendBufferTimeout, m_stabilityDecrFactor, m_stabilityIncrFactor, m_subRoute, m_useExtends, ns3::MakeCallback(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, PromiscReceive(), ns3::dsr::RouteCache::ScheduleTimer(), SendRerrWhenBreaksLinkToNextHop(), ns3::dsr::RouteCache::SetCacheTimeout(), ns3::dsr::RouteCache::SetCacheType(), ns3::dsr::RouteCache::SetCallback(), ns3::dsr::ErrorBuffer::SetErrorBufferTimeout(), ns3::dsr::GraReply::SetGraTableSize(), ns3::dsr::RreqTable::SetInitHopLimit(), ns3::dsr::RouteCache::SetInitStability(), ns3::dsr::MaintainBuffer::SetMaintainBufferTimeout(), ns3::dsr::RouteCache::SetMaxCacheLen(), ns3::dsr::RouteCache::SetMaxEntriesEachDst(), ns3::dsr::SendBuffer::SetMaxQueueLen(), ns3::dsr::ErrorBuffer::SetMaxQueueLen(), ns3::dsr::MaintainBuffer::SetMaxQueueLen(), ns3::dsr::RouteCache::SetMinLifeTime(), ns3::NetDevice::SetPromiscReceiveCallback(), SetRequestTable(), SetRouteCache(), ns3::dsr::RreqTable::SetRreqIdSize(), ns3::dsr::RreqTable::SetRreqTableSize(), ns3::dsr::SendBuffer::SetSendBufferTimeout(), ns3::dsr::RouteCache::SetStabilityDecrFactor(), ns3::dsr::RouteCache::SetStabilityIncrFactor(), ns3::dsr::RouteCache::SetSubRoute(), ns3::dsr::RreqTable::SetUniqueRreqIdSize(), ns3::dsr::RouteCache::SetUseExtends(), and ns3::ObjectBase::TraceConnectWithoutContext().

Referenced by NotifyNewAggregate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::dsr::DsrRouting::UpdateRouteEntry ( Ipv4Address  dst)

Definition at line 524 of file dsr-routing.cc.

References m_routeCache, and ns3::dsr::RouteCache::UpdateRouteEntry().

+ Here is the call graph for this function:

void ns3::dsr::DsrRouting::UseExtends ( RouteCacheEntry::IP_VECTOR  rt)

Definition at line 494 of file dsr-routing.cc.

References m_routeCache, and ns3::dsr::RouteCache::UseExtends().

+ Here is the call graph for this function:

Member Data Documentation

uint16_t ns3::dsr::DsrRouting::m_ackId
private

Definition at line 575 of file dsr-routing.h.

Referenced by AddAckReqHeader(), ForwardPacket(), and SalvagePacket().

std::vector<Ipv4Address> ns3::dsr::DsrRouting::m_addresses
private

Definition at line 647 of file dsr-routing.h.

std::map<NetworkKey, Timer> ns3::dsr::DsrRouting::m_addressForwardTimer
private
std::map<Ipv4Address, Timer> ns3::dsr::DsrRouting::m_addressReqTimer
private
Time ns3::dsr::DsrRouting::m_blacklistTimeout
private

Definition at line 583 of file dsr-routing.h.

Referenced by GetTypeId().

Ipv4Address ns3::dsr::DsrRouting::m_broadcast
private

Definition at line 585 of file dsr-routing.h.

Referenced by SendRequest(), and Start().

uint32_t ns3::dsr::DsrRouting::m_broadcastJitter
private

Definition at line 587 of file dsr-routing.h.

Referenced by GetTypeId(), and ScheduleInterRequest().

std::string ns3::dsr::DsrRouting::m_cacheType
private

Definition at line 603 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

std::vector<Ipv4Address> ns3::dsr::DsrRouting::m_clearList
private

Definition at line 645 of file dsr-routing.h.

uint32_t ns3::dsr::DsrRouting::m_discoveryHopLimit
private

Definition at line 533 of file dsr-routing.h.

Referenced by GetTypeId(), RouteRequestTimerExpire(), SendErrorRequest(), and Start().

TracedCallback<Ptr<const Packet> > ns3::dsr::DsrRouting::m_dropTrace
protected

Definition at line 492 of file dsr-routing.h.

Referenced by GetTypeId(), and Receive().

ErrorBuffer ns3::dsr::DsrRouting::m_errorBuffer
private

Definition at line 557 of file dsr-routing.h.

Referenced by AddRoute(), AddRoute_Link(), SendPacketFromBuffer(), SendUnreachError(), and Start().

std::vector<Ipv4Address> ns3::dsr::DsrRouting::m_finalRoute
private

Definition at line 621 of file dsr-routing.h.

Referenced by SendGratuitousReply().

GraReply ns3::dsr::DsrRouting::m_graReply
private

Definition at line 643 of file dsr-routing.h.

Referenced by SendGratuitousReply(), and Start().

uint32_t ns3::dsr::DsrRouting::m_graReplyTableSize
private

Definition at line 601 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_gratReplyHoldoff
private

Definition at line 597 of file dsr-routing.h.

Referenced by GetTypeId(), and SendGratuitousReply().

Time ns3::dsr::DsrRouting::m_initStability
private

Definition at line 611 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Ptr<Ipv4> ns3::dsr::DsrRouting::m_ip
private
Ptr<Ipv4L3Protocol> ns3::dsr::DsrRouting::m_ipv4
private

Definition at line 515 of file dsr-routing.h.

Referenced by DoDispose(), NotifyNewAggregate(), SendReply(), and Start().

Ptr<Ipv4Route> ns3::dsr::DsrRouting::m_ipv4Route
private
uint32_t ns3::dsr::DsrRouting::m_maxCacheLen
private

Definition at line 563 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_maxCacheTime
private

Definition at line 565 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint32_t ns3::dsr::DsrRouting::m_maxEntriesEachDst
private

Definition at line 569 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint32_t ns3::dsr::DsrRouting::m_maxMaintainLen
private

Definition at line 559 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_maxMaintainTime
private
uint32_t ns3::dsr::DsrRouting::m_maxMaintRexmt
private

Definition at line 547 of file dsr-routing.h.

Referenced by GetTypeId(), and NetworkScheduleTimerExpire().

Time ns3::dsr::DsrRouting::m_maxNetworkDelay
private

Definition at line 531 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint32_t ns3::dsr::DsrRouting::m_maxNetworkSize
private

Definition at line 529 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_maxRequestPeriod
private

Definition at line 599 of file dsr-routing.h.

Referenced by GetTypeId(), and ScheduleRreqRetry().

uint32_t ns3::dsr::DsrRouting::m_maxRreqId
private

Definition at line 581 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_maxRreqTime
private

Definition at line 567 of file dsr-routing.h.

uint8_t ns3::dsr::DsrRouting::m_maxSalvageCount
private

Definition at line 535 of file dsr-routing.h.

Referenced by GetTypeId(), SalvagePacket(), and SendRerrWhenBreaksLinkToNextHop().

uint32_t ns3::dsr::DsrRouting::m_maxSendBuffLen
private

Definition at line 551 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_minLifeTime
private

Definition at line 613 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Ptr<Node> ns3::dsr::DsrRouting::m_node
private

Definition at line 521 of file dsr-routing.h.

Referenced by DoDispose(), GetNode(), NotifyNewAggregate(), Receive(), and SetNode().

Time ns3::dsr::DsrRouting::m_nodeTraversalTime
private

Definition at line 549 of file dsr-routing.h.

Referenced by GetTypeId(), ScheduleCachedReply(), and ScheduleNetworkPacketRetry().

std::map<Ipv4Address, Timer> ns3::dsr::DsrRouting::m_nonPropReqTimer
private
Time ns3::dsr::DsrRouting::m_nonpropRequestTimeout
private

Definition at line 539 of file dsr-routing.h.

Referenced by GetTypeId(), and ScheduleRreqRetry().

uint32_t ns3::dsr::DsrRouting::m_numPriorityQueues
private

Definition at line 639 of file dsr-routing.h.

Referenced by GetTypeId(), PriorityScheduler(), and Start().

DsrOptionList_t ns3::dsr::DsrRouting::m_options
private

List of DSR Options supported.

Definition at line 513 of file dsr-routing.h.

Referenced by GetOption(), and Insert().

Time ns3::dsr::DsrRouting::m_passiveAckTimeout
private

Definition at line 589 of file dsr-routing.h.

Referenced by GetTypeId(), and SchedulePassivePacketRetry().

std::map<PassiveKey, Timer> ns3::dsr::DsrRouting::m_passiveAckTimer
private
std::map<PassiveKey, uint32_t> ns3::dsr::DsrRouting::m_passiveCnt
private
uint32_t ns3::dsr::DsrRouting::m_passiveRetries
private

Definition at line 543 of file dsr-routing.h.

Referenced by PassiveScheduleTimerExpire().

uint32_t ns3::dsr::DsrRouting::m_requestId
private

Definition at line 573 of file dsr-routing.h.

Referenced by SendErrorRequest(), and SendInitialRequest().

Time ns3::dsr::DsrRouting::m_requestPeriod
private

Definition at line 537 of file dsr-routing.h.

Referenced by GetTypeId(), and ScheduleRreqRetry().

uint32_t ns3::dsr::DsrRouting::m_requestTableIds
private

Definition at line 579 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint32_t ns3::dsr::DsrRouting::m_requestTableSize
private

Definition at line 577 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

Time ns3::dsr::DsrRouting::m_retransIncr
private

Definition at line 619 of file dsr-routing.h.

Referenced by GetTypeId(), and IncreaseRetransTimer().

std::string ns3::dsr::DsrRouting::m_routeSortType
private

Definition at line 605 of file dsr-routing.h.

uint32_t ns3::dsr::DsrRouting::m_rreqRetries
private

Definition at line 545 of file dsr-routing.h.

Referenced by GetTypeId(), and RouteRequestTimerExpire().

SendBuffer ns3::dsr::DsrRouting::m_sendBuffer
private
Time ns3::dsr::DsrRouting::m_sendBufferTimeout
private

Definition at line 553 of file dsr-routing.h.

Referenced by GetTypeId(), PacketNewRoute(), Send(), SendUnreachError(), and Start().

Time ns3::dsr::DsrRouting::m_sendBuffInterval
private

Definition at line 595 of file dsr-routing.h.

Referenced by CheckSendBuffer(), GetTypeId(), and SendBuffTimerExpire().

Timer ns3::dsr::DsrRouting::m_sendBuffTimer
private

Definition at line 593 of file dsr-routing.h.

Referenced by CheckSendBuffer(), DsrRouting(), and SendBuffTimerExpire().

uint32_t ns3::dsr::DsrRouting::m_sendRetries
private

Definition at line 541 of file dsr-routing.h.

Referenced by NetworkScheduleTimerExpire(), and ScheduleNetworkPacketRetry().

uint64_t ns3::dsr::DsrRouting::m_stabilityDecrFactor
private

Definition at line 607 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint64_t ns3::dsr::DsrRouting::m_stabilityIncrFactor
private

Definition at line 609 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

bool ns3::dsr::DsrRouting::m_subRoute
private

Definition at line 617 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

uint32_t ns3::dsr::DsrRouting::m_tryPassiveAcks
private

Definition at line 591 of file dsr-routing.h.

Referenced by GetTypeId(), and PassiveScheduleTimerExpire().

TracedCallback<const DsrOptionSRHeader &> ns3::dsr::DsrRouting::m_txPacketTrace
protected

Definition at line 493 of file dsr-routing.h.

Referenced by GetTypeId().

Ptr<UniformRandomVariable> ns3::dsr::DsrRouting::m_uniformRandomVariable
private
Time ns3::dsr::DsrRouting::m_useExtends
private

Definition at line 615 of file dsr-routing.h.

Referenced by GetTypeId(), and Start().

const uint8_t ns3::dsr::DsrRouting::PROT_NUMBER = 48
static

Define the dsr protocol number.

Definition at line 105 of file dsr-routing.h.

Referenced by GetProtocolNumber(), and PromiscReceive().

uint8_t ns3::dsr::DsrRouting::segsLeft
private

Definition at line 525 of file dsr-routing.h.


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