Hi guys.
I'm here once again to seek help in understanding how the INET's flow measurement works, specifically when headers are added/removed to packets. I'm on INET 4.4.1 & OMNeT++ 6.0.
I prepared an example project, attached. The network is as per the snippet below:
Each flowOut module is a FlowMeasurement, configured to measure the bitElapsedTimePerRegion. Moreover (have a look at the omnetpp.ini) they are configured so that they process only one flow (for instance, *.appFlowOut.bitElapsedTimePerRegion.demuxFlow.flowName = "app").
The hdrAEncapsulator and hdrADecapsulator modules add and remove an header (defined as HeaderA) to the packet. Same is for hdrB* modules, except that they add/remove an header (HeaderB) and a trailer (TrailerB) too.
Each delay block delays packets of 1s.
Well, let's focus on the hdrBFlowOut flow measurement module. I was expecting that it generates 4 same-value entries for each packet, that is to say the elapsed time (of 1s) for the 4 regions I was supposing in the packet -- 1 for the packet generated by the source, 1 for the header A, 1 for the header B and 1 for the trailer B. Instead I found in the vec file 7 entries; and the most serious part is that one of these entries has a different value, and I don't know why. Here's a snippet:
0 2 2 1 <--- these (1) are ok (1s is the delay of the d2 block)
0 2 2 1
0 2 2 2
<--- what's this??
0 2 2 1
0 2 2 1
0 2 2 1
0 2 2 1
This single value completely messes up the statistics I gather. In fact, it affects even the meanBitElapsedTimePerPacket, in case I turn to it. (you can play with the attached project).
So I need help. What the "spurious" value is? In general, is this the INET programmers' desired behavior? In case, how can I cope with it? This output is useless to me, sadly. And sorry for the very long mail...
Thank you. Regards,
Luca