|
INET Framework for OMNeT++/OMNEST
|
PimInterfaceTable contains an PimInterface entry for each interface on which PIM is enabled.
More...
#include <PimInterfaceTable.h>
PimInterfaceTable contains an PimInterface entry for each interface on which PIM is enabled.
When interfaces are added to/deleted from the InterfaceTable, then the corresponding PimInterface entry is added/deleted automatically.
◆ PimInterfaceVector
◆ ~PimInterfaceTable()
| inet::PimInterfaceTable::~PimInterfaceTable |
( |
| ) |
|
|
virtual |
◆ addInterface()
129 cXMLElement *config = par(
"pimConfig");
130 cXMLElementList interfaceElements = config->getChildrenByTagName(
"interface");
131 InterfaceMatcher matcher(interfaceElements);
133 int i = matcher.findMatchingSelector(ie);
135 PimInterface *pimInterface =
createInterface(ie, interfaceElements[i]);
Referenced by receiveSignal().
◆ configureInterfaces()
| void inet::PimInterfaceTable::configureInterfaces |
( |
cXMLElement * |
config | ) |
|
|
protectedvirtual |
52 cXMLElementList interfaceElements = config->getChildrenByTagName(
"interface");
53 InterfaceMatcher matcher(interfaceElements);
54 IInterfaceTable *ift = getModuleFromPar<IInterfaceTable>(par(
"interfaceTableModule"),
this);
56 for (
int k = 0;
k < ift->getNumInterfaces(); ++
k) {
57 NetworkInterface *ie = ift->getInterface(
k);
58 if (ie->isMulticast() && !ie->isLoopback()) {
59 int i = matcher.findMatchingSelector(ie);
Referenced by initialize().
◆ createInterface()
71 const char *modeAttr = config->getAttribute(
"mode");
76 if (strcmp(modeAttr,
"dense") == 0)
78 else if (strcmp(modeAttr,
"sparse") == 0)
81 throw cRuntimeError(
"PimInterfaceTable: invalid 'mode' attribute value in the configuration of interface '%s'", ie->getInterfaceName());
83 const char *stateRefreshAttr = config->getAttribute(
"state-refresh");
84 bool stateRefreshFlag = stateRefreshAttr && !strcmp(stateRefreshAttr,
"true");
86 return new PimInterface(ie, mode, stateRefreshFlag);
Referenced by addInterface(), and configureInterfaces().
◆ findInterface()
| PimInterfaceTable::PimInterfaceVector::iterator inet::PimInterfaceTable::findInterface |
( |
NetworkInterface * |
ie | ) |
|
|
protectedvirtual |
◆ getInterface()
| virtual PimInterface* inet::PimInterfaceTable::getInterface |
( |
int |
k | ) |
|
|
inlinevirtual |
◆ getInterfaceById()
| PimInterface * inet::PimInterfaceTable::getInterfaceById |
( |
int |
interfaceId | ) |
|
|
virtual |
◆ getNumInterfaces()
| virtual int inet::PimInterfaceTable::getNumInterfaces |
( |
| ) |
|
|
inlinevirtual |
◆ handleMessage()
| void inet::PimInterfaceTable::handleMessage |
( |
cMessage * |
msg | ) |
|
|
overrideprotectedvirtual |
28 throw cRuntimeError(
"This module doesn't process messages");
◆ initialize()
| void inet::PimInterfaceTable::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
33 cSimpleModule::initialize(stage);
44 throw cRuntimeError(
"PimInterfaceTable: containing node not found.");
◆ numInitStages()
| virtual int inet::PimInterfaceTable::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ receiveSignal()
| void inet::PimInterfaceTable::receiveSignal |
( |
cComponent * |
source, |
|
|
simsignal_t |
signalID, |
|
|
cObject * |
obj, |
|
|
cObject * |
details |
|
) |
| |
|
overrideprotectedvirtual |
100 Enter_Method(
"%s", cComponent::getSignalName(signalID));
105 NetworkInterface *ie = check_and_cast<NetworkInterface *>(obj);
106 if (ie->isMulticast() && !ie->isLoopback())
110 NetworkInterface *ie = check_and_cast<NetworkInterface *>(obj);
111 if (ie->isMulticast() && !ie->isLoopback())
◆ removeInterface()
◆ pimInterfaces
The documentation for this class was generated from the following files:
cModule * findContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:31
PimInterfaceVector pimInterfaces
Definition: PimInterfaceTable.h:63
virtual int getNumInterfaces()
Definition: PimInterfaceTable.h:68
@ DenseMode
Definition: PimInterfaceTable.h:25
void printSignalBanner(simsignal_t signalID, const cObject *obj, const cObject *details)
Utility function.
Definition: Simsignals.cc:126
virtual PimInterface * createInterface(NetworkInterface *ie, cXMLElement *config)
Definition: PimInterfaceTable.cc:69
PimMode
Definition: PimInterfaceTable.h:24
simsignal_t interfaceDeletedSignal
Definition: Simsignals.cc:31
virtual void addInterface(NetworkInterface *ie)
Definition: PimInterfaceTable.cc:125
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
const double k
Definition: Qam1024Modulation.cc:14
virtual void removeInterface(NetworkInterface *ie)
Definition: PimInterfaceTable.cc:141
#define Enter_Method(...)
Definition: SelfDoc.h:71
virtual PimInterfaceVector::iterator findInterface(NetworkInterface *ie)
Definition: PimInterfaceTable.cc:116
virtual PimInterface * getInterface(int k)
Definition: PimInterfaceTable.h:69
int getInterfaceId() const
Definition: PimInterfaceTable.h:44
@ SparseMode
Definition: PimInterfaceTable.h:26
virtual void configureInterfaces(cXMLElement *config)
Definition: PimInterfaceTable.cc:50
simsignal_t interfaceCreatedSignal
Definition: Simsignals.cc:30
INET_API InitStage INITSTAGE_LINK_LAYER
Initialization of link-layer protocols.