Bug 2305 - Each subframe in A-MPDUs shall be discarded when its maximum number of retries has been reached
Each subframe in A-MPDUs shall be discarded when its maximum number of retrie...
Status: RESOLVED INVALID
Product: ns-3
Classification: Unclassified
Component: wifi
pre-release
All All
: P5 major
Assigned To: sebastien.deronne
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-21 05:44 UTC by sebastien.deronne
Modified: 2016-03-02 15:43 UTC (History)
3 users (show)

See Also:


Attachments
patch to discard MPDU subframes that reached the maximum number of retries (19.08 KB, patch)
2016-02-21 13:33 UTC, sebastien.deronne
Details | Diff
ReportAmpduTxStatus called when a Block ACK is received or missed (6.78 KB, patch)
2016-02-23 18:16 UTC, sebastien.deronne
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description sebastien.deronne 2016-02-21 05:44:50 UTC
For non A-MPDU transmissions, a data frame is discarded when its maximum number of retries has been reached.

For A-MPDUs, the same rules applies to each subframe, i.e. a subframe shall be discarded when its maximum number of retries has been reached. This is never done in the current implementation.

Furthermore, for each received or lost MPDUs, ReportDataOK or ReportDataFailed is called, respectively. This makes actually not sense, unless we specify its number of retries. Instead, I think we should handle this in the BlockAckManager itself, and only trigger once the WifiRemoteStation manager each time a block ack is received or lost, with information about the number of failed and successful MPDUs. 

Those changes are required to support HT Minstrel. I am busy now on a patch so that Matias can use it for his HT Minstrel implementation.
Comment 1 sebastien.deronne 2016-02-21 13:33:26 UTC
Created attachment 2288 [details]
patch to discard MPDU subframes that reached the maximum number of retries
Comment 2 sebastien.deronne 2016-02-23 18:16:38 UTC
Created attachment 2294 [details]
ReportAmpduTxStatus called when a Block ACK is received or missed

Added a new API call when a Block ACK is received or missed, which indicates about the number of successfully and unsuccessfully transmitted MPDUs. This is required for HT Minstrel support.
Comment 3 sebastien.deronne 2016-02-29 16:26:02 UTC
Initial topic of this bug is still unclear.
Even though Linux implementation chose for a maximum retry number of 30 times per MPDU, the standard only mandate that a MPDU is discarded once its lifetime has expired.
The standard requirement is already in place in our current implementation, but the Linux choice is not.
My thought is that we should reject this bug.
Comment 4 Matías Richart 2016-03-01 05:59:17 UTC
Regarding ReportAmpduTxStatus addition patch.
In MacLow::BlockAckTimeout, the function ReportDataFail shouldn't be called because then ReportAmpduTxStatus will be called.
There is an option to move ReportAmpduStatus to MacLow::BlockAckTimeout instead of in EdcaTxop.
Comment 5 sebastien.deronne 2016-03-02 15:43:39 UTC
Rejecting this bug, I will open a new thread for ReportAmpduTxStatus