|
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().