INET Framework for OMNeT++/OMNEST
|
#include <AODVRouting.h>
Classes | |
class | RREQIdentifier |
class | RREQIdentifierCompare |
Public Member Functions | |
AODVRouting () | |
virtual | ~AODVRouting () |
Public Member Functions inherited from inet::ILifecycle | |
virtual | ~ILifecycle () |
Public Member Functions inherited from inet::INetfilter::IHook | |
virtual | ~IHook () |
Protected Member Functions | |
void | handleMessage (cMessage *msg) override |
void | initialize (int stage) override |
virtual int | numInitStages () const override |
void | startRouteDiscovery (const L3Address &target, unsigned int timeToLive=0) |
void | completeRouteDiscovery (const L3Address &target) |
bool | hasOngoingRouteDiscovery (const L3Address &destAddr) |
void | cancelRouteDiscovery (const L3Address &destAddr) |
void | updateRoutingTable (IRoute *route, const L3Address &nextHop, unsigned int hopCount, bool hasValidDestNum, unsigned int destSeqNum, bool isActive, simtime_t lifeTime) |
IRoute * | createRoute (const L3Address &destAddr, const L3Address &nextHop, unsigned int hopCount, bool hasValidDestNum, unsigned int destSeqNum, bool isActive, simtime_t lifeTime) |
bool | updateValidRouteLifeTime (const L3Address &destAddr, simtime_t lifetime) |
void | scheduleExpungeRoutes () |
void | expungeRoutes () |
AODVRREPACK * | createRREPACK () |
AODVRREP * | createHelloMessage () |
AODVRREQ * | createRREQ (const L3Address &destAddr) |
AODVRREP * | createRREP (AODVRREQ *rreq, IRoute *destRoute, IRoute *originatorRoute, const L3Address &sourceAddr) |
AODVRREP * | createGratuitousRREP (AODVRREQ *rreq, IRoute *originatorRoute) |
AODVRERR * | createRERR (const std::vector< UnreachableNode > &unreachableNodes) |
void | handleRREP (AODVRREP *rrep, const L3Address &sourceAddr) |
void | handleRREQ (AODVRREQ *rreq, const L3Address &sourceAddr, unsigned int timeToLive) |
void | handleRERR (AODVRERR *rerr, const L3Address &sourceAddr) |
void | handleHelloMessage (AODVRREP *helloMessage) |
void | handleRREPACK (AODVRREPACK *rrepACK, const L3Address &neighborAddr) |
void | sendRREQ (AODVRREQ *rreq, const L3Address &destAddr, unsigned int timeToLive) |
void | sendRREPACK (AODVRREPACK *rrepACK, const L3Address &destAddr) |
void | sendRREP (AODVRREP *rrep, const L3Address &destAddr, unsigned int timeToLive) |
void | sendGRREP (AODVRREP *grrep, const L3Address &destAddr, unsigned int timeToLive) |
void | forwardRREP (AODVRREP *rrep, const L3Address &destAddr, unsigned int timeToLive) |
void | forwardRREQ (AODVRREQ *rreq, unsigned int timeToLive) |
void | handleRREPACKTimer () |
void | handleBlackListTimer () |
void | sendHelloMessagesIfNeeded () |
void | handleWaitForRREP (WaitForRREP *rrepTimer) |
void | sendRERRWhenNoRouteToForward (const L3Address &unreachableAddr) |
void | handleLinkBreakSendRERR (const L3Address &unreachableAddr) |
virtual void | receiveSignal (cComponent *source, simsignal_t signalID, cObject *obj, cObject *details) override |
Result | ensureRouteForDatagram (INetworkDatagram *datagram) |
virtual Result | datagramPreRoutingHook (INetworkDatagram *datagram, const InterfaceEntry *inputInterfaceEntry, const InterfaceEntry *&outputInterfaceEntry, L3Address &nextHopAddress) override |
This is the first hook called by the network protocol before it routes a datagram that was received from the lower layer. More... | |
virtual Result | datagramForwardHook (INetworkDatagram *datagram, const InterfaceEntry *inputInterfaceEntry, const InterfaceEntry *&outputInterfaceEntry, L3Address &nextHopAddress) override |
This is the second hook called by the network protocol before it sends a datagram to the lower layer. More... | |
virtual Result | datagramPostRoutingHook (INetworkDatagram *datagram, const InterfaceEntry *inputInterfaceEntry, const InterfaceEntry *&outputInterfaceEntry, L3Address &nextHopAddress) override |
This is the last hook called by the network protocol before it sends a datagram to the lower layer. More... | |
virtual Result | datagramLocalInHook (INetworkDatagram *datagram, const InterfaceEntry *inputInterfaceEntry) override |
This is the last hook called by the network protocol before it sends a datagram to the upper layer. More... | |
virtual Result | datagramLocalOutHook (INetworkDatagram *datagram, const InterfaceEntry *&outputInterfaceEntry, L3Address &nextHopAddress) override |
This is the first hook called by the network protocol before it routes a datagram that was received from the upper layer. More... | |
void | delayDatagram (INetworkDatagram *datagram) |
L3Address | getSelfIPAddress () const |
void | sendAODVPacket (AODVControlPacket *packet, const L3Address &destAddr, unsigned int timeToLive, double delay) |
void | clearState () |
virtual bool | handleOperationStage (LifecycleOperation *operation, int stage, IDoneCallback *doneCallback) override |
Perform one stage of a lifecycle operation. More... | |
Protected Attributes | |
IL3AddressType * | addressType = nullptr |
cModule * | host = nullptr |
IRoutingTable * | routingTable = nullptr |
IInterfaceTable * | interfaceTable = nullptr |
INetfilter * | networkProtocol = nullptr |
unsigned int | rerrRatelimit = 0 |
unsigned int | aodvUDPPort = 0 |
bool | askGratuitousRREP = false |
bool | useHelloMessages = false |
simtime_t | maxJitter |
simtime_t | activeRouteTimeout |
simtime_t | helloInterval |
unsigned int | netDiameter = 0 |
unsigned int | rreqRetries = 0 |
unsigned int | rreqRatelimit = 0 |
unsigned int | timeoutBuffer = 0 |
unsigned int | ttlStart = 0 |
unsigned int | ttlIncrement = 0 |
unsigned int | ttlThreshold = 0 |
unsigned int | localAddTTL = 0 |
unsigned int | allowedHelloLoss = 0 |
simtime_t | nodeTraversalTime |
cPar * | jitterPar = nullptr |
cPar * | periodicJitter = nullptr |
simtime_t | deletePeriod |
simtime_t | myRouteTimeout |
simtime_t | blacklistTimeout |
simtime_t | netTraversalTime |
simtime_t | nextHopWait |
simtime_t | pathDiscoveryTime |
unsigned int | rreqId = 0 |
unsigned int | sequenceNum = 0 |
std::map< L3Address, WaitForRREP * > | waitForRREPTimers |
std::map< RREQIdentifier, simtime_t, RREQIdentifierCompare > | rreqsArrivalTime |
L3Address | failedNextHop |
std::map< L3Address, simtime_t > | blacklist |
unsigned int | rerrCount = 0 |
unsigned int | rreqCount = 0 |
simtime_t | lastBroadcastTime |
std::map< L3Address, unsigned int > | addressToRreqRetries |
cMessage * | helloMsgTimer = nullptr |
cMessage * | expungeTimer = nullptr |
cMessage * | counterTimer = nullptr |
cMessage * | rrepAckTimer = nullptr |
cMessage * | blacklistTimer = nullptr |
simtime_t | rebootTime |
bool | isOperational = false |
std::multimap< L3Address, INetworkDatagram * > | targetAddressToDelayedPackets |
Additional Inherited Members | |
Public Types inherited from inet::INetfilter::IHook | |
enum | Type { PREROUTING, LOCALIN, FORWARD, POSTROUTING, LOCALOUT } |
enum | Result { ACCEPT, DROP, QUEUE, STOLEN } |
|
virtual |
|
protected |
Referenced by handleWaitForRREP().
|
protected |
Referenced by handleOperationStage(), and ~AODVRouting().
|
protected |
Referenced by handleRREP().
|
protected |
Referenced by handleRREQ().
|
protected |
Referenced by sendHelloMessagesIfNeeded().
|
protected |
Referenced by handleLinkBreakSendRERR(), handleRERR(), and sendRERRWhenNoRouteToForward().
|
protected |
Referenced by handleHelloMessage(), handleRREP(), and handleRREQ().
|
protected |
Referenced by handleRREQ().
|
protected |
Referenced by handleRREP().
Referenced by handleWaitForRREP(), and startRouteDiscovery().
|
overrideprotectedvirtual |
This is the second hook called by the network protocol before it sends a datagram to the lower layer.
This is done after the datagramPreRoutingHook or the datagramLocalInHook is called and the datagram is routed.
Implements inet::INetfilter::IHook.
|
inlineoverrideprotectedvirtual |
This is the last hook called by the network protocol before it sends a datagram to the upper layer.
This is done after the datagramPreRoutingHook is called and the datagram is routed.
Implements inet::INetfilter::IHook.
|
inlineoverrideprotectedvirtual |
This is the first hook called by the network protocol before it routes a datagram that was received from the upper layer.
The nextHopAddress is ignored when the outputInterfaceEntry is a nullptr. After this is done
Implements inet::INetfilter::IHook.
|
inlineoverrideprotectedvirtual |
This is the last hook called by the network protocol before it sends a datagram to the lower layer.
Implements inet::INetfilter::IHook.
|
inlineoverrideprotectedvirtual |
This is the first hook called by the network protocol before it routes a datagram that was received from the lower layer.
The nextHopAddress is ignored when the outputInterfaceEntry is nullptr.
Implements inet::INetfilter::IHook.
|
protected |
Referenced by ensureRouteForDatagram().
|
protected |
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by handleRREP().
|
protected |
Referenced by handleRREQ().
|
protected |
Referenced by completeRouteDiscovery(), createHelloMessage(), createRREP(), createRREQ(), ensureRouteForDatagram(), handleRREP(), handleRREQ(), initialize(), sendAODVPacket(), and startRouteDiscovery().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by handleRREP().
|
protected |
Referenced by receiveSignal().
|
overrideprotected |
|
overrideprotectedvirtual |
Perform one stage of a lifecycle operation.
Processing may be done entirely within this method, or may be a longer process that involves nonzero simulation time or several events, and is triggered by this method call.
Return value: true = "done"; false = "not yet done, will invoke doneCallback when done"
Implements inet::ILifecycle.
Referenced by handleMessage().
Referenced by handleMessage().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by cancelRouteDiscovery(), completeRouteDiscovery(), ensureRouteForDatagram(), expungeRoutes(), handleRREP(), sendRREQ(), and startRouteDiscovery().
|
overrideprotected |
|
inlineoverrideprotectedvirtual |
|
overrideprotectedvirtual |
|
protected |
Referenced by createRoute(), expungeRoutes(), handleLinkBreakSendRERR(), handleRERR(), and updateRoutingTable().
|
protected |
Referenced by forwardRREP(), forwardRREQ(), handleLinkBreakSendRERR(), handleRERR(), sendGRREP(), sendHelloMessagesIfNeeded(), sendRERRWhenNoRouteToForward(), sendRREP(), sendRREPACK(), and sendRREQ().
|
protected |
Referenced by handleRREQ().
|
protected |
Referenced by handleMessage().
|
protected |
Referenced by datagramForwardHook().
|
protected |
Referenced by handleRREQ().
|
protected |
Referenced by handleRREP().
|
protected |
Referenced by handleWaitForRREP(), and startRouteDiscovery().
|
protected |
Referenced by ensureRouteForDatagram().
|
protected |
Referenced by handleHelloMessage(), handleRREP(), and handleRREQ().
|
protected |
Referenced by datagramForwardHook(), and ensureRouteForDatagram().
|
protected |
Referenced by datagramForwardHook(), ensureRouteForDatagram(), handleRREP(), handleRREQ(), and initialize().
|
protected |
Referenced by clearState(), handleWaitForRREP(), and startRouteDiscovery().
|
protected |
|
protected |
Referenced by createHelloMessage(), handleHelloMessage(), and initialize().
|
protected |
Referenced by initialize(), and sendAODVPacket().
|
protected |
Referenced by createRREQ(), and initialize().
|
protected |
Referenced by handleBlackListTimer(), handleRREPACKTimer(), and handleRREQ().
|
protected |
Referenced by handleRREPACKTimer(), and initialize().
|
protected |
Referenced by clearState(), handleBlackListTimer(), handleMessage(), handleRREPACKTimer(), initialize(), and ~AODVRouting().
|
protected |
Referenced by clearState(), handleMessage(), handleOperationStage(), initialize(), and ~AODVRouting().
|
protected |
Referenced by datagramForwardHook(), expungeRoutes(), handleLinkBreakSendRERR(), handleRERR(), handleRREP(), handleRREQ(), and initialize().
|
protected |
Referenced by clearState(), handleMessage(), initialize(), scheduleExpungeRoutes(), and ~AODVRouting().
|
protected |
Referenced by handleRREPACKTimer(), and sendRREP().
|
protected |
Referenced by createHelloMessage(), handleHelloMessage(), handleOperationStage(), initialize(), and sendHelloMessagesIfNeeded().
|
protected |
Referenced by clearState(), handleMessage(), handleOperationStage(), initialize(), sendHelloMessagesIfNeeded(), and ~AODVRouting().
|
protected |
Referenced by initialize().
|
protected |
Referenced by createRoute(), initialize(), and sendAODVPacket().
|
protected |
Referenced by handleMessage(), handleOperationStage(), and initialize().
|
protected |
Referenced by forwardRREP(), forwardRREQ(), handleLinkBreakSendRERR(), initialize(), sendRERRWhenNoRouteToForward(), and sendRREQ().
|
protected |
Referenced by initialize(), sendAODVPacket(), and sendHelloMessagesIfNeeded().
|
protected |
Referenced by initialize().
|
protected |
|
protected |
Referenced by createRREP(), and initialize().
|
protected |
Referenced by handleWaitForRREP(), initialize(), and sendRREQ().
|
protected |
Referenced by expungeRoutes(), handleRREQ(), and initialize().
|
protected |
Referenced by cancelRouteDiscovery(), completeRouteDiscovery(), and initialize().
|
protected |
Referenced by initialize(), and sendRREP().
|
protected |
Referenced by handleRREQ(), initialize(), and sendRREQ().
|
protected |
Referenced by handleRREQ(), and initialize().
|
protected |
Referenced by handleOperationStage(), initialize(), and sendHelloMessagesIfNeeded().
|
protected |
Referenced by handleOperationStage(), handleRERR(), handleRREP(), handleRREQ(), and initialize().
|
protected |
Referenced by clearState(), handleLinkBreakSendRERR(), handleMessage(), handleRERR(), initialize(), and sendRERRWhenNoRouteToForward().
|
protected |
Referenced by handleLinkBreakSendRERR(), handleRERR(), initialize(), and sendRERRWhenNoRouteToForward().
|
protected |
Referenced by createRoute(), createRREQ(), datagramForwardHook(), ensureRouteForDatagram(), expungeRoutes(), getSelfIPAddress(), handleHelloMessage(), handleLinkBreakSendRERR(), handleRERR(), handleRREP(), handleRREPACK(), handleRREQ(), initialize(), receiveSignal(), scheduleExpungeRoutes(), sendGRREP(), sendHelloMessagesIfNeeded(), sendRERRWhenNoRouteToForward(), sendRREP(), and updateValidRouteLifeTime().
|
protected |
Referenced by clearState(), handleMessage(), handleRREPACK(), initialize(), sendRREP(), and ~AODVRouting().
|
protected |
Referenced by clearState(), handleMessage(), initialize(), and sendRREQ().
|
protected |
Referenced by clearState(), createRREQ(), and initialize().
|
protected |
Referenced by initialize(), and sendRREQ().
|
protected |
Referenced by handleWaitForRREP(), and initialize().
|
protected |
Referenced by clearState(), createRREQ(), and handleRREQ().
|
protected |
Referenced by clearState(), createHelloMessage(), createRREP(), createRREQ(), and initialize().
|
protected |
Referenced by cancelRouteDiscovery(), clearState(), completeRouteDiscovery(), and delayDatagram().
|
protected |
Referenced by initialize(), and sendRREQ().
|
protected |
Referenced by ensureRouteForDatagram(), initialize(), and sendRREQ().
|
protected |
Referenced by initialize(), and sendRREQ().
|
protected |
Referenced by initialize(), and sendRREQ().
|
protected |
Referenced by clearState(), handleOperationStage(), initialize(), and sendHelloMessagesIfNeeded().
|
protected |
Referenced by cancelRouteDiscovery(), clearState(), completeRouteDiscovery(), hasOngoingRouteDiscovery(), and sendRREQ().