Bug 2478 - VHT A-MPDU subframes are transmitted with the wrong length
VHT A-MPDU subframes are transmitted with the wrong length
Status: RESOLVED INVALID
Product: ns-3
Classification: Unclassified
Component: wifi
ns-3.25
All All
: P5 major
Assigned To: sebastien.deronne
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-08-16 15:44 UTC by yousridaldoul
Modified: 2016-08-16 16:28 UTC (History)
1 user (show)

See Also:


Attachments
VHT network with bug scenario (17.34 KB, text/x-c++src)
2016-08-16 15:44 UTC, yousridaldoul
Details

Note You need to log in before you can comment on or make changes to this bug.
Description yousridaldoul 2016-08-16 15:44:39 UTC
Created attachment 2542 [details]
VHT network with bug scenario

If we build a VHT network (802.11ac) and enable A-MPDU, we can observe that A-MPDU subframes are transmitted with the wrong length. Besides, this length increases remarkably when the number of enqueued packets increases.

In the attached file, you can find a simple network configuration that shows this bug. At the top of the file, you find the obtained output. In this configuration there is a VHT network composed of 1 AP and 1 station. A-MPDU is enabled. The station sends packets to the AP every 100ms. It sends packets at the following instants:
- Simulator::Now() = 1000ms : sends 1 packet of 1500 Bytes (transmitted with 1538 Bytes, which is OK as there is the MAC header to be added)
- Simulator::Now() = 1100ms : sends 5 packets of 1500 Bytes each (transmitted with 1570 Bytes, which is a BUG)
- Simulator::Now() = 1200ms : sends 5 packets of 1500 Bytes each (transmitted with 1570 Bytes, which is a BUG)
- Simulator::Now() = 1300ms : sends 40 packets of 1500 Bytes each (transmitted with 1850 Bytes, which is a BUG)
- Simulator::Now() = 1400ms : sends 50 packets of 1500 Bytes each (transmitted with 1930 Bytes, which is a BUG)
- Simulator::Now() = 1500ms : sends 80 packets of 1500 Bytes each (transmitted with 2170 Bytes, which is a BUG)
- Simulator::Now() = 1600ms : sends 80 packets of 1500 Bytes each (transmitted with 2170 Bytes, which is a BUG)

Regards
Comment 1 sebastien.deronne 2016-08-16 16:28:58 UTC
The attached script is not correct, bug to be rejected.

You are calling the Send method with a pointer to the same packet, which keeps adding the headers (llc) to the packet:

SEND: 0x7fc462e1bc40 -> 1508
SEND after LLC: 1516
queue: 1516
SEND: 0x7fc462e1bc40 -> 1516
SEND after LLC: 1524
queue: 1524
SEND: 0x7fc462e1bc40 -> 1524
SEND after LLC: 1532
queue: 1532
SEND: 0x7fc462e1bc40 -> 1532
SEND after LLC: 1540
queue: 1540