Problems when increasing Buffersize

Asked by Falk on 2010-01-26

Hi,

I increased the Buffersize to 500, because I saw many packet drops even with 9 Mbits Poisson streams. It seams like the wifimac depends on the buffer to trigger a new contention before a retransmission takes place.

My scenario is the following:
1x1 DraftN
Framelength: 1500 Byte
9 Mbit STA -> AP
distance: 10 m
multi slope channel model without shadowing and fast fading

There was a collision of a frame transmission of the STA and a beacon packet from the AP. After the timeout in the blockAck module runs up, and a retransmission is started. But in never goes beyond the RTSCTS module. After that (1.6015480s) there happens nothing on the channel, but when the buffer has to drop some packets, a new contention is started (2.6011151s) and everything runs fine again until the next collision.

Any ideas?

BR,
Falk

P.S: Have a look:

( 1.6015480) [WiFiM] STA2.L2.BlockACK Timeout -> failed transmission to 1
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Received ACK, iterate through compounds on air
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Compound 918, ackSN -1 -> 2 transmissions, retransmit
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Compound 919, ackSN -1 -> 2 transmissions, retransmit
( 1.6015480) [ WNS] Buffer Send compound, size is now 0
( 1.6015480) [WiFiM] STA2.L2.holDelayProbe2 STA2 sent 1.60155, size 12288
( 1.6015480) [WiFiM] STA2.L2.BlockACK Next frame in a row processed for receiver: 1 with SN: 920
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Queue outgoing compound with sn 920
( 1.6015480) [WiFiM] STA2.L2.BlockACK Stored outgoing frame, remaining capacity 47
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Transmit pending frame with sn 918
( 1.6015480) [WiFiM] STA2.L2.ACKSwitch Outgoing compound catch by filter All
( 1.6015480) [WiFiM] STA2.L2.Aggregation New aggregation for receiver 1, wait for more
( 1.6015480) [WiFiM] STA2.L2.Aggregation Start new container compound with SDU Size: 12000 PCI Size: 288 Entries: 1
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Transmit pending frame with sn 919
( 1.6015480) [WiFiM] STA2.L2.ACKSwitch Outgoing compound catch by filter All
( 1.6015480) [WiFiM] STA2.L2.Aggregation Adding compound 2 SDU Size: 24000 PCI Size: 640
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Transmit pending frame with sn 920
( 1.6015480) [WiFiM] STA2.L2.ACKSwitch Outgoing compound catch by filter All
( 1.6015480) [WiFiM] STA2.L2.Aggregation Adding compound 3 SDU Size: 36000 PCI Size: 960
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: No more frames to tx, send BAreq with start-sn 918
( 1.6015480) [WiFiM] STA2.L2.BlockACK TxQ1: Set waitForACK to true
( 1.6015480) [WiFiM] STA2.L2.ACKSwitch Outgoing compound catch by filter All
( 1.6015480) [WiFiM] STA2.L2.Aggregation Compound to 1 requires direct reply -> Close aggregation, fake entries to 9
( 1.6015480) [WiFiM] STA2.L2.Aggregation Adding compound 10 SDU Size: 36000 PCI Size: 1184
( 1.6015480) [WiFiM] STA2.L2.Aggregation Sending container with 10 entries
( 1.6015480) [WiFiM] STA2.L2.Aggregation Send aggregated compound with frame exchange duration set to8.4e-05
( 1.6015480) [WiFiM] VCIB.VCIB Query for node 1, key numAntennas --> 1
( 1.6015480) [WiFiM] STA2.L2.RateAdaptation RA getPhyMode with lqm: 33.7347 dB transmissions: 2 numTx: 1 numRx: 1 -> numSS: 1 postSINR: 33.7347 dB -> |QAM64-5/6|*52 (-> 260 dbps)
( 1.6015480) [WiFiM] STA2.L2.RateAdaptation Send data frame to rx: 1 with |QAM64-5/6|*52 (-> 260 dbps)
( 1.6015480) [WiFiM] STA2.L2.TXOP Outgoing data compound to 1, starting TXOP with duration 0
( 1.6015480) [WiFiM] STA2.L2.TXOP Current compound cuts TXOP to -0.000684
( 1.6015480) [WiFiM] STA2.L2.TXOP Current compound fills complete TXOP
( 1.6015480) [WiFiM] STA2.L2.RTSCTS Outgoing DATA with size 37184, below threshold
( 1.6015540) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 2

... (only traffic generation and l2-upper and ip-lower convergences)

( 2.6011151) [WiFiM] STA2.L2.Manager FALK: applPacketCounter of Stream: 2 increased to: 2442
( 2.6011151) [ WNS] Buffer STA2 dropping a PDU! maxSize reached : 500 current size is 501
( 2.6011151) [ WNS] Buffer Falk: dropping frame of stream id: 2
( 2.6011151) [ WNS] Buffer Store outgoing compound, size is now 500
( 2.6011300) [WiFiM] AP1.L2.1.Manager FALK: aggCAT increased by9.7e-05 to: 0.111469
( 2.6011300) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff AIFS waited, start new backoff with counter 7, cw is 7
( 2.6011300) [WiFiM] AP1.L2.1.Manager FALK: aggCAT increased by9.7e-05 to: 0.111566
( 2.6011300) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff AIFS waited, start new backoff with counter 7, cw is 15
( 2.6011390) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 6
( 2.6011390) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 6
( 2.6011480) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 5
( 2.6011480) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 5
( 2.6011570) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 4
( 2.6011570) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 4
( 2.6011660) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 3
( 2.6011660) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 3
( 2.6011750) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 2
( 2.6011750) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 2
( 2.6011840) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 1
( 2.6011840) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 1
( 2.6011930) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Slot waited, counter is now 0
( 2.6011930) [WiFiM] AP1.L2.1.BroadcastDCF1.Backoff Backoff has finished, transmission is none
( 2.6011930) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Slot waited, counter is now 0
( 2.6011930) [WiFiM] AP1.L2.1.UnicastDCF1.Backoff Backoff has finished, transmission is none
( 2.6015020) [WiFiM] STA2.L2.ChannelState NAV has finished
( 2.6015020) [WiFiM] STA2.L2.RTSCTS onNAVIdle
( 2.6015020) [WiFiM] STA2.L2.ChannelState RSS changed to -95.9897 dBm
( 2.6015020) [WiFiM] STA2.L2.ChannelState Channel changed to idle
( 2.6015020) [WiFiM] STA2.L2.BroadcastDCF2.Backoff Start new backoff, waiting for AIFS=3.4e-05

Question information

Language:
English Edit question
Status:
Solved
For:
openWNS WiFiMAC Edit question
Assignee:
No assignee Edit question
Solved by:
Falk
Solved:
2010-01-26
Last query:
2010-01-26
Last reply:
2010-01-26
Harald Radke (rat-comnets) said : #1

Hello Falk!

A similiar (this?) bug has been fixed some time ago, but I guess the changes haven't made it into the public branch yet )-:

it should either be revision 91 or revision 93

I THINK Sebastian mentioned an update to take place soon, no guarantee though...

shame on me, I can't quite remember which of the bug fixes actually were related to that problem, but I THINK it was in

src/draftn/BlockUntilReply.cpp

the method onRxError() has been changed to:
-------->

void BlockUntilReply::onRxError()
{
    if(this->blocked and (this->txStatus == finished))
    {
        MESSAGE_SINGLE(NORMAL, logger, "onRxError during blocked, timeout");
 if(hasTimeoutSet())
 {
  cancelTimeout();
 }
        onTimeout();
    }
}

<----------------

Hope that helps

Harry

Falk (kingsnoopy) said : #2

Hi,

currently I cannot reproduce the discribed behaviour (different computer), but I will give it a try later.
Thanks so far!

btw: I am really looking forward to an update (not only because of the MIMO OFDMAPHY), how do I know, when it is published?

Falk

Falk (kingsnoopy) said : #3

Hi,

I cannot reproduce the behaviour anymore. Seems like the random generator works well.
But cancelTimeout() is definitely not called in BlockUntilReply::onRxError() in public revision 168.

BR
Falk

Harald Radke (rat-comnets) said : #4

Hi Falk,

I was referring to the WiFiMAC revision no. (:

Greez,

Harry