Error Modelling and Aggregation

Asked by Falk on 2009-12-30

Hi,

as far as I can see, MSDU aggregation works roughly this way:
RTS-CTS is done. Frames are aggregated on transmitter side to A-MSDU. A preamble is transmitted, which causes the receiver to create an aggregation container. Then the MSDUs are transmitted seperatly and the receiver appends the MSDU to the container. After the last frame, the reciever closes the container and forwards it to the processing path.

Therefore it is possible to simulate a transmissions failure only of one MSDU, because ErrorModelling and CRC Check are placed before the aggregation module.

In the simulations I ran, I observed that this is never the case. Either alls MSDUs are damaged or all MSDUs are transmitted successfully.

Did I miss something? Do I have to use a different error model?

BR,
Falk

Question information

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

hm...I think this mainly depends on your scenarios, e.g. how many stations, how much interference you generate. A good thing is to have some hidden nodes and turn off RTSCTS (:

especially with RTSCTS you get the described effects since an unsuccessful RTSCTS handshake is treated as a total loss (e.g. if the receiver doesn't get the RTS due to interference or the CTS gets lost at the sender due to simultanious transmissions of a hidden node), while a successful handshake will most likely lead to a successful transmission

Hope that helps

Harry

Falk (kingsnoopy) said : #2

This sounds reasonable, but considering a scenario with only two stations and one stream between AP and STA, am I right, that a transmission failure of a single Subframe should be more likely than a transmission failure of all Subframes of an A-MPDU?
Only the latter happens...

Sebastian Max (smx-comnets) said : #3

Dear Falk,

> This sounds reasonable, but considering a scenario with only two
> stations and one stream between AP and STA, am I right, that a
> transmission failure of a single Subframe should be more likely than
> a transmission failure of all Subframes of an A-MPDU? Only the latter
> happens...

Mmm... I cannot confirm this.

To test this, I changed a little bit the DraftN-Test in
tests/system/wifimac/configDraftN.py:
-verticalDistanceSTAandMP = 50
+verticalDistanceSTAandMP = 285

-maxAggregation = 10
+maxAggregation = 3

I.e., larger distance and less maxAggregation (maximum 3 subframes +
blockACKreq).

Running
"./openwns -f configDraftN.py | grep ErrorMode"
confirms a PER of 10% for the subframes, which is nice for testing:

( 1.0354002) [WiFiM] STA3.L2.ErrorModelling
New compound with SNR 4.73108 dB len 12288 phyMode |BPSK-1/2|*52 (-> 26
dbps) per 0.104216

Running
"./openwns -f configDraftN.py | grep "Received last aggregation fragment"
confirms that not all A-MPDUs have 3 subframes + blockACKreq, e.g. at
time 1.1511948:
( 1.1511948) [WiFiM] STA3.L2.DeAggregation
Received last aggregation fragment, deliver container with 3 entries

So let's take a look what happens at time 1.1511948 at STA3:
"./openwns -f configDraftN.py | grep "1.1511948" (cleaned up):
Received last aggregation fragment, deliver container with 3 entries
RxQ1: Received SN 52, waiting for 52 --> deliver
RxQ1: Received new SN 54, waiting for 53 --> store
RxQ1: Received BAreq with SN 52, prepare BA with fExDur 0 startSN: 52
ackSNs: 52 54

Hence, the MSDUs with SN 52 and 54 have been received, whereas 53 is
missing. So a transmission failure of a single subframe did happen.

BR,
Sebastian

Falk (kingsnoopy) said : #4

Hi,

the scenario you looked at "verticalDistanceSTAandMP = 285" just hits the small area of SNR values that results in PERs producing transmission errors of sinlge Subframes.

What I didnt see is, that the Rate Adaption usually prevents this.

In a scenario with multiple streams and no RTS/CTS there should be much more transmission errors of single subframes. I will verify that.

Thank you!