bufferLossRatio probe

Asked by Mohammad Siddique

Hello,

I am currently try to test the bufferLossRatio probe. In this purpose I am cosidering WiFi Stations. What i did is following.

1. I have add the following code in my config file

-------
openwns.Buffer.Buffer.lossRatioProbeName = "wifimac.BufferLossRatio"
node = openwns.evaluation.createSourceNode(WNS, openwns.Buffer.Buffer.lossRatioProbeName)
node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by = 'MAC.Id', forAll = staIDs, format = 'Node%d'))
#node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue = 0.0, maxXValue = 5.0, resolution = 5000))
node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
---------

2. Intentionally keep the traffic load high and buffersize low, so that there should be high drop in buffer.

However, unfortunately following is found in output/wifimac.BufferLossRatio_Node3_TimeSeries.dat

# PROBE RESULTS (THIS IS A MAGIC LINE)
# ---------------------------------------------------------------------------
# Evaluation: TimeSeries
# ---------------------------------------------------------------------------
# Name: no name available
# Description: no description available
# ---------------------------------------------------------------------------
1.5209582 0.0000000
1.6209582 0.0000000
1.7209582 0.0000000
1.8209582 0.0000000
1.9209582 0.0000000
2.0209582 0.0000000
2.1209582 0.0000000
2.2209582 0.0000000

3. To test in details: added two messages inside 'framework/library/src/ldk/buffer/Buffer.cpp', as WiFi Buffer is somehow subclass of that.

--------------
void
Buffer::increaseDroppedPDUs(int size)
{
        ++this->droppedPDUs;
        this->droppedPDUWindow.put(size);
        MESSAGE_SINGLE(NORMAL, logger,"Buffer::increaseDroppedPDUs "<<size);
        //mms08012010
}

void
Buffer::periodically()
{
        if (this->lossRatioProbeBus)
        {
                this->lossRatioProbeBus->put(this->droppedPDUWindow.getPerSecond());
                MESSAGE_SINGLE(NORMAL, logger,"Buffer::periodically
                "<<this->droppedPDUWindow.getPerSecond()); //mms08012010

        }
}
-------------

then, part of debug output is as follows

( 1.6186649) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6190915) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6195182) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6199449) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6201404) [ WNS] Buffer Buffer::periodically 0
( 1.6203715) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6209582) [ WNS] Buffer Buffer::periodically 0
( 1.6212604) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
( 1.6216870) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1

So it is clear that packets are dropped, However, bufferLossRatio probe for some reason don't follow that.

I wonder I missed something??

Kind regards.
M Siddique

Question information

Language:
English Edit question
Status:
Answered
For:
openWNS Library Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Maciej Muehleisen (mue-comnets) said :
#1

Hi,

please remove the SettlingTimeGuard and Separate generators and try
again. If it works then see if either the settling time is to high or
the probed MAC.Id is wrong (staIDs contains wrong entries).

Greats,

Maciej

Mohammad Siddique wrote:
> New question #96566 on openWNS Library:
> https://answers.launchpad.net/openwns-library/+question/96566
>
> Hello,
>
> I am currently try to test the bufferLossRatio probe. In this purpose I am cosidering WiFi Stations. What i did is following.
>
>
> 1. I have add the following code in my config file
>
> -------
> openwns.Buffer.Buffer.lossRatioProbeName = "wifimac.BufferLossRatio"
> node = openwns.evaluation.createSourceNode(WNS, openwns.Buffer.Buffer.lossRatioProbeName)
> node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
> node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by = 'MAC.Id', forAll = staIDs, format = 'Node%d'))
> #node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue = 0.0, maxXValue = 5.0, resolution = 5000))
> node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
> ---------
>
> 2. Intentionally keep the traffic load high and buffersize low, so that there should be high drop in buffer.
>
> However, unfortunately following is found in output/wifimac.BufferLossRatio_Node3_TimeSeries.dat
>
>
> # PROBE RESULTS (THIS IS A MAGIC LINE)
> # ---------------------------------------------------------------------------
> # Evaluation: TimeSeries
> # ---------------------------------------------------------------------------
> # Name: no name available
> # Description: no description available
> # ---------------------------------------------------------------------------
> 1.5209582 0.0000000
> 1.6209582 0.0000000
> 1.7209582 0.0000000
> 1.8209582 0.0000000
> 1.9209582 0.0000000
> 2.0209582 0.0000000
> 2.1209582 0.0000000
> 2.2209582 0.0000000
>
>
> 3. To test in details: added two messages inside 'framework/library/src/ldk/buffer/Buffer.cpp', as WiFi Buffer is somehow subclass of that.
>
> --------------
> void
> Buffer::increaseDroppedPDUs(int size)
> {
> ++this->droppedPDUs;
> this->droppedPDUWindow.put(size);
> MESSAGE_SINGLE(NORMAL, logger,"Buffer::increaseDroppedPDUs "<<size);
> //mms08012010
> }
>
> void
> Buffer::periodically()
> {
> if (this->lossRatioProbeBus)
> {
> this->lossRatioProbeBus->put(this->droppedPDUWindow.getPerSecond());
> MESSAGE_SINGLE(NORMAL, logger,"Buffer::periodically
> "<<this->droppedPDUWindow.getPerSecond()); //mms08012010
>
> }
> }
> -------------
>
> then, part of debug output is as follows
>
> ( 1.6186649) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6190915) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6195182) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6199449) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6201404) [ WNS] Buffer Buffer::periodically 0
> ( 1.6203715) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6209582) [ WNS] Buffer Buffer::periodically 0
> ( 1.6212604) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
> ( 1.6216870) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
>
> So it is clear that packets are dropped, However, bufferLossRatio probe for some reason don't follow that.
>
> I wonder I missed something??
>
> Kind regards.
> M Siddique
>
>

Revision history for this message
Mohammad Siddique (mms-hbc) said :
#2

Hi,

the results are still the same

# PROBE RESULTS (THIS IS A MAGIC LINE)
#
---------------------------------------------------------------------------
# Evaluation: TimeSeries
#
---------------------------------------------------------------------------
# Name: no name available
# Description: no description available
#
---------------------------------------------------------------------------
1.5201404 0.0000000
1.5209582 0.0000000
1.6201404 0.0000000
1.6209582 0.0000000
1.7201404 0.0000000
1.7209582 0.0000000
1.8201404 0.0000000
1.8209582 0.0000000
1.9201404 0.0000000
1.9209582 0.0000000
2.0201404 0.0000000
2.0209582 0.0000000
2.1201404 0.0000000
2.1209582 0.0000000
2.2201404 0.0000000
2.2209582 0.0000000
2.3201404 0.0000000
2.3209582 0.0000000
2.4201404 0.0000000
2.4209582 0.0000000
2.5201404 0.0000000
2.5209582 0.0000000

I wonder whether there is requirement to add some code in WiFi
Buffer.cpp corresponding to the

void Buffer::periodically() in
'framework/library/src/ldk/buffer/Buffer.cpp'.

Btw, I have tried with Buffer size probe which works.

----
openwns.Buffer.Buffer.sizeProbeName = "wifimac.BufferSize"
node = openwns.evaluation.createSourceNode(WNS,
openwns.Buffer.Buffer.sizeProbeName)
node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by
= 'MAC.Id', forAll = staIDs, format = 'Node%d'))
#node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue
= 0.0, maxXValue = 5.0, resolution = 5000))
node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
---

Regards,
M Siddique

Maciej Muehleisen wrote:
> Your question #96566 on openWNS Library changed:
> https://answers.launchpad.net/openwns-library/+question/96566
>
> Status: Open => Answered
>
> Maciej Muehleisen proposed the following answer:
> Hi,
>
> please remove the SettlingTimeGuard and Separate generators and try
> again. If it works then see if either the settling time is to high or
> the probed MAC.Id is wrong (staIDs contains wrong entries).
>
> Greats,
>
> Maciej
>
> Mohammad Siddique wrote:
>
>>New question #96566 on openWNS Library:
>>https://answers.launchpad.net/openwns-library/+question/96566
>>
>>Hello,
>>
>>I am currently try to test the bufferLossRatio probe. In this purpose I am cosidering WiFi Stations. What i did is following.
>>
>>
>>1. I have add the following code in my config file
>>
>>-------
>>openwns.Buffer.Buffer.lossRatioProbeName = "wifimac.BufferLossRatio"
>>node = openwns.evaluation.createSourceNode(WNS, openwns.Buffer.Buffer.lossRatioProbeName)
>>node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
>>node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by = 'MAC.Id', forAll = staIDs, format = 'Node%d'))
>>#node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue = 0.0, maxXValue = 5.0, resolution = 5000))
>>node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
>>---------
>>
>>2. Intentionally keep the traffic load high and buffersize low, so that there should be high drop in buffer.
>>
>>However, unfortunately following is found in output/wifimac.BufferLossRatio_Node3_TimeSeries.dat
>>
>>
>># PROBE RESULTS (THIS IS A MAGIC LINE)
>># ---------------------------------------------------------------------------
>># Evaluation: TimeSeries
>># ---------------------------------------------------------------------------
>># Name: no name available
>># Description: no description available
>># ---------------------------------------------------------------------------
>>1.5209582 0.0000000
>>1.6209582 0.0000000
>>1.7209582 0.0000000
>>1.8209582 0.0000000
>>1.9209582 0.0000000
>>2.0209582 0.0000000
>>2.1209582 0.0000000
>>2.2209582 0.0000000
>>
>>
>>3. To test in details: added two messages inside 'framework/library/src/ldk/buffer/Buffer.cpp', as WiFi Buffer is somehow subclass of that.
>>
>>--------------
>>void
>>Buffer::increaseDroppedPDUs(int size)
>>{
>> ++this->droppedPDUs;
>> this->droppedPDUWindow.put(size);
>> MESSAGE_SINGLE(NORMAL, logger,"Buffer::increaseDroppedPDUs "<<size);
>> //mms08012010
>>}
>>
>>void
>>Buffer::periodically()
>>{
>> if (this->lossRatioProbeBus)
>> {
>> this->lossRatioProbeBus->put(this->droppedPDUWindow.getPerSecond());
>> MESSAGE_SINGLE(NORMAL, logger,"Buffer::periodically
>> "<<this->droppedPDUWindow.getPerSecond()); //mms08012010
>>
>> }
>>}
>>-------------
>>
>>then, part of debug output is as follows
>>
>>( 1.6186649) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6190915) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6195182) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6199449) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6201404) [ WNS] Buffer Buffer::periodically 0
>>( 1.6203715) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6209582) [ WNS] Buffer Buffer::periodically 0
>>( 1.6212604) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
>>( 1.6216870) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
>>
>>So it is clear that packets are dropped, However, bufferLossRatio probe for some reason don't follow that.
>>
>>I wonder I missed something??
>>
>>Kind regards.
>>M Siddique
>>
>>
>
>

--
Kind regards,
M Siddique

   MohaMMad MuTTakin SiDDique, MSc. Engr
   Communication Networks
   University of Bremen, FB1
   Room # S2310, Otto-Hahn-Allee NW1
   28359 Bremen, Germany

   EMail: <email address hidden>
   Tel : +49 421 218 62380
   Fax : +49 421 218 3601
   www.comnets.uni-bremen.de/~mms
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Revision history for this message
Maciej Muehleisen (mue-comnets) said :
#3

Hi,

it could be you accidentally changed the "droppedPDUWindowDuration"
parameter of the buffer. Default is to probe every 0.1 seconds the
average over the last 0.2 seconds (droppedPDUWindowDuration). Try to
output _config.get<double>("droppedPDUWindowDuration") in the
constructor of Buffer.cpp (libwns) and see what it says.

Greats,

Maciej

Mohammad Siddique wrote:
> Question #96566 on openWNS Library changed:
> https://answers.launchpad.net/openwns-library/+question/96566
>
> Status: Answered => Open
>
> Mohammad Siddique is still having a problem:
> Hi,
>
> the results are still the same
>
>
> # PROBE RESULTS (THIS IS A MAGIC LINE)
> #
> ---------------------------------------------------------------------------
> # Evaluation: TimeSeries
> #
> ---------------------------------------------------------------------------
> # Name: no name available
> # Description: no description available
> #
> ---------------------------------------------------------------------------
> 1.5201404 0.0000000
> 1.5209582 0.0000000
> 1.6201404 0.0000000
> 1.6209582 0.0000000
> 1.7201404 0.0000000
> 1.7209582 0.0000000
> 1.8201404 0.0000000
> 1.8209582 0.0000000
> 1.9201404 0.0000000
> 1.9209582 0.0000000
> 2.0201404 0.0000000
> 2.0209582 0.0000000
> 2.1201404 0.0000000
> 2.1209582 0.0000000
> 2.2201404 0.0000000
> 2.2209582 0.0000000
> 2.3201404 0.0000000
> 2.3209582 0.0000000
> 2.4201404 0.0000000
> 2.4209582 0.0000000
> 2.5201404 0.0000000
> 2.5209582 0.0000000
>
> I wonder whether there is requirement to add some code in WiFi
> Buffer.cpp corresponding to the
>
> void Buffer::periodically() in
> 'framework/library/src/ldk/buffer/Buffer.cpp'.
>
>
> Btw, I have tried with Buffer size probe which works.
>
> ----
> openwns.Buffer.Buffer.sizeProbeName = "wifimac.BufferSize"
> node = openwns.evaluation.createSourceNode(WNS,
> openwns.Buffer.Buffer.sizeProbeName)
> node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
> node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by
> = 'MAC.Id', forAll = staIDs, format = 'Node%d'))
> #node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue
> = 0.0, maxXValue = 5.0, resolution = 5000))
> node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
> ---
>
>
> Regards,
> M Siddique
>
> Maciej Muehleisen wrote:
>
>> Your question #96566 on openWNS Library changed:
>> https://answers.launchpad.net/openwns-library/+question/96566
>>
>> Status: Open => Answered
>>
>> Maciej Muehleisen proposed the following answer:
>> Hi,
>>
>> please remove the SettlingTimeGuard and Separate generators and try
>> again. If it works then see if either the settling time is to high or
>> the probed MAC.Id is wrong (staIDs contains wrong entries).
>>
>> Greats,
>>
>> Maciej
>>
>> Mohammad Siddique wrote:
>>
>>
>>> New question #96566 on openWNS Library:
>>> https://answers.launchpad.net/openwns-library/+question/96566
>>>
>>> Hello,
>>>
>>> I am currently try to test the bufferLossRatio probe. In this purpose I am cosidering WiFi Stations. What i did is following.
>>>
>>>
>>> 1. I have add the following code in my config file
>>>
>>> -------
>>> openwns.Buffer.Buffer.lossRatioProbeName = "wifimac.BufferLossRatio"
>>> node = openwns.evaluation.createSourceNode(WNS, openwns.Buffer.Buffer.lossRatioProbeName)
>>> node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(settlingTime))
>>> node.getLeafs().appendChildren(openwns.evaluation.generators.Separate(by = 'MAC.Id', forAll = staIDs, format = 'Node%d'))
>>> #node.getLeafs().appendChildren(openwns.evaluation.generators.PDF(minXValue = 0.0, maxXValue = 5.0, resolution = 5000))
>>> node.getLeafs().appendChildren(openwns.evaluation.generators.TimeSeries())
>>> ---------
>>>
>>> 2. Intentionally keep the traffic load high and buffersize low, so that there should be high drop in buffer.
>>>
>>> However, unfortunately following is found in output/wifimac.BufferLossRatio_Node3_TimeSeries.dat
>>>
>>>
>>> # PROBE RESULTS (THIS IS A MAGIC LINE)
>>> # ---------------------------------------------------------------------------
>>> # Evaluation: TimeSeries
>>> # ---------------------------------------------------------------------------
>>> # Name: no name available
>>> # Description: no description available
>>> # ---------------------------------------------------------------------------
>>> 1.5209582 0.0000000
>>> 1.6209582 0.0000000
>>> 1.7209582 0.0000000
>>> 1.8209582 0.0000000
>>> 1.9209582 0.0000000
>>> 2.0209582 0.0000000
>>> 2.1209582 0.0000000
>>> 2.2209582 0.0000000
>>>
>>>
>>> 3. To test in details: added two messages inside 'framework/library/src/ldk/buffer/Buffer.cpp', as WiFi Buffer is somehow subclass of that.
>>>
>>> --------------
>>> void
>>> Buffer::increaseDroppedPDUs(int size)
>>> {
>>> ++this->droppedPDUs;
>>> this->droppedPDUWindow.put(size);
>>> MESSAGE_SINGLE(NORMAL, logger,"Buffer::increaseDroppedPDUs "<<size);
>>> //mms08012010
>>> }
>>>
>>> void
>>> Buffer::periodically()
>>> {
>>> if (this->lossRatioProbeBus)
>>> {
>>> this->lossRatioProbeBus->put(this->droppedPDUWindow.getPerSecond());
>>> MESSAGE_SINGLE(NORMAL, logger,"Buffer::periodically
>>> "<<this->droppedPDUWindow.getPerSecond()); //mms08012010
>>>
>>> }
>>> }
>>> -------------
>>>
>>> then, part of debug output is as follows
>>>
>>> ( 1.6186649) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6190915) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6195182) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6199449) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6201404) [ WNS] Buffer Buffer::periodically 0
>>> ( 1.6203715) [WiFiM] STA3.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6209582) [ WNS] Buffer Buffer::periodically 0
>>> ( 1.6212604) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
>>> ( 1.6216870) [WiFiM] STA4.L2.Buffer Buffer::increaseDroppedPDUs 1
>>>
>>> So it is clear that packets are dropped, However, bufferLossRatio probe for some reason don't follow that.
>>>
>>> I wonder I missed something??
>>>
>>> Kind regards.
>>> M Siddique
>>>
>>>
>>>
>>
>
>
>

Can you help with this problem?

Provide an answer of your own, or ask Mohammad Siddique for more information if necessary.

To post a message you must log in.