MultiMeasurementLayer¶
Package: inet.protocolelement.measurement
compound module MultiMeasurementLayer
(no description)
Usage diagram¶
Inheritance diagram¶
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
numMeasurementModules |
int |
1 |
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/layer |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
upperLayerIn |
input |
||
upperLayerOut |
output |
||
lowerLayerIn |
input |
||
lowerLayerOut |
output |
Unassigned submodule parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
measurementStarter.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
measurementStarter.packetFilter |
object |
“*” |
Specifies which packets are considered, matches all packets by default |
measurementStarter.offset |
int |
0b |
Designates the packet part to be measured |
measurementStarter.length |
int |
-1b |
Designates the packet part to be measured |
measurementStarter.flowName |
string |
“” |
Use packet flow to separate measurement from other measurements |
measurementStarter.measure |
string |
“not packetEvent” |
Match expression for a combination of: packetEvent, elapsedTime, delayingTime, queueingTime, processingTime, transmissionTime, propagationTime |
measurementMaker.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
measurementMaker.packetFilter |
object |
“*” |
Which packets are considered, matches all packets by default |
measurementMaker.offset |
int |
0b |
Designates the packet part to be measured |
measurementMaker.length |
int |
-1b |
Designates the packet part to be measured |
measurementMaker.flowName |
string |
“” |
Use packet flow to separate measurement from other measurements |
measurementMaker.measure |
string |
“not packetEvent” |
Match expression for a combination of: packetEvent, elapsedTime, delayingTime, queueingTime, processingTime, transmissionTime, propagationTime |
measurementMaker.endMeasurement |
bool |
true |
|
measurementMaker.packetEventFileName |
string |
“${resultdir}/${configname}-” + fullPath() + “-packetEvent.json” |
Source code¶
module MultiMeasurementLayer like IMeasurementLayer
{
parameters:
@display("i=block/layer");
int numMeasurementModules = default(1);
gates:
input upperLayerIn;
output upperLayerOut;
input lowerLayerIn;
output lowerLayerOut;
submodules:
measurementStarter[numMeasurementModules]: <default("FlowMeasurementStarter")> like IPacketFlow {
parameters:
@display("p=150,100,column,100");
}
measurementMaker[numMeasurementModules]: <default("FlowMeasurementRecorder")> like IPacketFlow {
parameters:
@display("p=350,100,column,100");
}
connections:
upperLayerIn --> { @display("m=n"); } --> measurementStarter[0].in;
for i=0..numMeasurementModules-2 {
measurementStarter[i].out --> { @display("m=n"); } --> measurementStarter[i+1].in;
}
measurementStarter[numMeasurementModules-1].out --> { @display("m=s"); } --> lowerLayerOut;
lowerLayerIn --> { @display("m=s"); } --> measurementMaker[numMeasurementModules-1].in;
for i=0..numMeasurementModules-2 {
measurementMaker[i+1].out --> { @display("m=n"); } --> measurementMaker[i].in;
}
measurementMaker[0].out --> { @display("m=n"); } --> upperLayerOut;
}
File: src/inet/protocolelement/measurement/MultiMeasurementLayer.ned