Bug 2468

Summary: Simulation with A-MPDU enabled hangs when fragmentation threshold is smaller than MSDU size
Product: ns-3 Reporter: sebastien.deronne
Component: wifiAssignee: sebastien.deronne
Status: RESOLVED FIXED    
Severity: normal CC: ns-bugs
Priority: P5    
Version: ns-3.25   
Hardware: All   
OS: All   
Attachments: patch to fix

Description sebastien.deronne 2016-08-07 14:21:53 UTC
Created attachment 2527 [details]
patch to fix

In the current code, setting a fragmentation threshold smaller than the MSDU size while A-MPDU is used results in a hanging simulation.

However, the standard says the following:

Except as described below, when an individually addressed MSDU received from the LLC would result in an MPDU of length greater than dot11FragmentationThreshold, the MSDU shall be fragmented. Except as described below, when an individually addressed MMPDU received from the MLME, would result in an MPDU of length greater than dot11FragmentationThreshold, the MMPDU shall be fragmented.
The exception applies when an MSDU is transmitted using an HT-immediate or HT-delayed Block Ack agreement or when the MSDU or MMPDU is carried in an A-MPDU, in which case the MSDU or MMPDU is transmitted without fragmentation. Each fragment is a frame no longer than dot11FragmentationThreshold, if security encapsulation is not invoked for the MPDU.

This means fragmentation should never occur with A-MPDU, regardless of the fragmentation threshold that has been set. I attach a patch to respect standard rules and fix the bug.
Comment 1 sebastien.deronne 2016-08-07 14:52:10 UTC
This patch could still be pushed for the upcoming release
Comment 2 sebastien.deronne 2016-08-10 15:01:12 UTC
pushed in changeset 12252:0abf417c0040