|
INET Framework for OMNeT++/OMNEST
|
Records routing table changes into a file.
More...
#include <RoutingTableRecorder.h>
Records routing table changes into a file.
- See also
- Ipv4RoutingTable, Ipv4Route
◆ RoutingTableRecorder()
| inet::RoutingTableRecorder::RoutingTableRecorder |
( |
| ) |
|
◆ ~RoutingTableRecorder()
| inet::RoutingTableRecorder::~RoutingTableRecorder |
( |
| ) |
|
|
virtual |
◆ ensureRoutingLogFileOpen()
| void inet::RoutingTableRecorder::ensureRoutingLogFileOpen |
( |
| ) |
|
|
protectedvirtual |
76 std::string fname = getEnvir()->getConfig()->getAsFilename(CFGID_ROUTINGLOG_FILE);
80 throw cRuntimeError(
"Cannot open file %s", fname.c_str());
Referenced by recordInterfaceChange(), and recordRouteChange().
◆ finish()
| void inet::RoutingTableRecorder::finish |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ handleMessage()
| void inet::RoutingTableRecorder::handleMessage |
( |
cMessage * |
| ) |
|
|
overrideprotectedvirtual |
51 throw cRuntimeError(
this,
"This module doesn't process messages");
◆ hookListeners()
| void inet::RoutingTableRecorder::hookListeners |
( |
| ) |
|
|
protectedvirtual |
60 cModule *systemModule = getSimulation()->getSystemModule();
Referenced by initialize().
◆ initialize()
| void inet::RoutingTableRecorder::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
41 cSimpleModule::initialize(stage);
◆ numInitStages()
| virtual int inet::RoutingTableRecorder::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ receiveChangeNotification()
| void inet::RoutingTableRecorder::receiveChangeNotification |
( |
cComponent * |
source, |
|
|
simsignal_t |
signalID, |
|
|
cObject * |
details |
|
) |
| |
|
protectedvirtual |
86 cModule *
m =
dynamic_cast<cModule *
>(nsource);
88 m = nsource->getParentModule();
95 recordInterfaceChange(host, check_and_cast<const NetworkInterfaceChangeDetails *>(obj)->getNetworkInterface(), signalID);
◆ receiveSignal()
| virtual void inet::RoutingTableRecorder::receiveSignal |
( |
cComponent * |
source, |
|
|
simsignal_t |
signalID, |
|
|
cObject * |
obj, |
|
|
cObject * |
details |
|
) |
| |
|
inlineoverridevirtual |
◆ recordInterfaceChange()
| void inet::RoutingTableRecorder::recordInterfaceChange |
( |
cModule * |
host, |
|
|
const NetworkInterface * |
ie, |
|
|
simsignal_t |
signalID |
|
) |
| |
|
protectedvirtual |
100 if (getSimulation()->getSimulationStage() == CTX_CLEANUP)
116 throw cRuntimeError(
"Unexpected signal: %s", getSignalName(signalID));
120 auto ipv4Data = ie->findProtocolData<Ipv4InterfaceData>();
123 getSimulation()->getEventNumber(),
124 SIMTIME_STR(simTime()),
125 host->getFullPath().c_str(),
126 ie->getInterfaceName(),
127 (ipv4Data !=
nullptr ? ipv4Data->getIPAddress().str().c_str() : Ipv4Address().str().c_str()));
Referenced by receiveChangeNotification().
◆ recordRouteChange()
| void inet::RoutingTableRecorder::recordRouteChange |
( |
cModule * |
host, |
|
|
const IRoute * |
route, |
|
|
simsignal_t |
signalID |
|
) |
| |
|
protectedvirtual |
133 IRoutingTable *rt = route->getRoutingTableAsGeneric();
143 throw cRuntimeError(
"Unexpected signal: %s", getSignalName(signalID));
147 auto ie = route->getInterface();
148 fprintf(
routingLogFile,
"%s #%" PRId64
" %ss %s %s %s/%d %s %s\n",
150 getSimulation()->getEventNumber(),
151 SIMTIME_STR(simTime()),
152 host->getFullPath().c_str(),
153 (rt ? rt->getRouterIdAsGeneric().str().c_str() :
"*"),
154 route->getDestinationAsGeneric().str().c_str(),
155 route->getPrefixLength(),
156 route->getNextHopAsGeneric().str().c_str(),
157 (ie ? ie->getInterfaceName() :
"*"));
Referenced by receiveChangeNotification().
◆ routingLogFile
| FILE* inet::RoutingTableRecorder::routingLogFile |
|
private |
The documentation for this class was generated from the following files:
cModule * getContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:40
simsignal_t routeChangedSignal
Definition: Simsignals.cc:43
INET_API InitStage INITSTAGE_NETWORK_LAYER
Initialization of network layer protocols.
virtual void hookListeners()
Definition: RoutingTableRecorder.cc:58
virtual void ensureRoutingLogFileOpen()
Definition: RoutingTableRecorder.cc:73
simsignal_t interfaceDeletedSignal
Definition: Simsignals.cc:31
virtual void recordRouteChange(cModule *host, const IRoute *route, simsignal_t signalID)
Definition: RoutingTableRecorder.cc:131
simsignal_t routeAddedSignal
Definition: Simsignals.cc:41
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
virtual void receiveChangeNotification(cComponent *source, simsignal_t signalID, cObject *details)
Definition: RoutingTableRecorder.cc:84
FILE * routingLogFile
Definition: RoutingTableRecorder.h:23
simsignal_t routeDeletedSignal
Definition: Simsignals.cc:42
simsignal_t interfaceIpv4ConfigChangedSignal
Definition: Simsignals.cc:35
value< double, units::m > m
Definition: Units.h:1233
simsignal_t interfaceCreatedSignal
Definition: Simsignals.cc:30
virtual void recordInterfaceChange(cModule *host, const NetworkInterface *ie, simsignal_t signalID)
Definition: RoutingTableRecorder.cc:98
simsignal_t interfaceConfigChangedSignal
Definition: Simsignals.cc:33
void makePathForFile(const char *filename)
Definition: INETUtils.cc:210